【问题标题】:JCombobox accepting array of charactersJCombobox 接受字符数组
【发布时间】:2014-10-27 01:19:17
【问题描述】:

我希望 JCombobox 接受一个字符数组。我似乎找不到解决方法。基本上,我希望 JCombobox 保存值 '0' - '9',但作为 chars 而不是 int。

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

我该如何解决这个问题?我做一个字符数组吗?如果是这样,我以后如何获取 char 值?

【问题讨论】:

  • 你会想要一个JComboBox&lt;Character&gt; 和一个类似的模型。然后使用自定义的单元格渲染器,你就可以了。
  • "..基本上,我希望 JCombobox 保存值 '0' - '9',但作为字符而不是 int。" .. .为什么?我个人会提供一个带有微调器数字模型的JSpinner,并在选择时转换为char。
  • 尝试使用 Character[] levels = ...JComboBox&lt;Character&gt; skillLevelCombo = new JComboBox&lt;&gt;(levels); 代替,char 被认为是原始类型,并且由于泛型(我认为)在这种情况下没有被自动装箱
  • @HovercraftFullOfEels 不用担心,懒得发布答案;)

标签: java arrays swing jcombobox


【解决方案1】:

这很好用:

  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); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-31
    • 2019-12-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    相关资源
    最近更新 更多