2014-10-27 73 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);