2014-10-27 61 views
1

我想让JCombobox接受字符数组。我似乎无法找到解决方法。基本上,我想JCombobox保持值'0' - '9',但作为chars而不是int。JCombobox接受字符数组

char[] levels = {'0', '1', '2', '3'}; 
skillLevelCombo = new JComboBox<Object>(levels); //Does not work 

我该如何解决这个问题?我要制作一个Character数组吗?如果是这样,那么以后如何获取char值?

+0

你会想要一个JComboBox的''和类似的模型。然后使用自定义的单元格渲染器,并且您是黄金。 – 2014-10-27 01:20:15

+0

*“基本上,我想JCombobox的值是'0' - '9',但是作为字符而不是int。”* *** ...为什么?***我个人会提供一个'JSpinner'机智的微调号码模型,并转换为字符选择。 – 2014-10-27 01:20:45

+1

尝试使用'Character [] levels = ...'和'JComboBox skillLevelCombo = new JComboBox <>(levels);'相反,'char'被认为是原始类型,并且在此上下文中未被自动装箱,因为泛型(我认为) – MadProgrammer 2014-10-27 01:22:39

回答

3

这只是正常:

Character[] levels = {'0', '1', '2', '3'}; 
    skillLevelCombo = new JComboBox<Character>(levels); 

例如,

import javax.swing.JComboBox; 
import javax.swing.JOptionPane; 

public class ComboFun { 
    private static JComboBox<Character> skillLevelCombo; 

    public static void main(String[] args) { 
     Character[] levels = {'0', '1', '2', '3'}; 
     skillLevelCombo = new JComboBox<Character>(levels); 

     JOptionPane.showMessageDialog(null, skillLevelCombo); 
    } 
} 

请注意,整数的工作也很好:

Integer[] levels = {0, 1, 2, 3}; 
    final JComboBox<Integer> skillLevelCombo = new JComboBox<Integer>(levels);