使用 int[] 填充 JComboBox

Posted

技术标签:

【中文标题】使用 int[] 填充 JComboBox【英文标题】:Populate a JComboBox with an int[] 【发布时间】:2014-01-24 11:03:17 【问题描述】:

是否可以?我正在编写一个代码,它将使用一个填充了年份(整数)的 JComboBox。

我写的代码是这样的:

int[] birthYear = new int[currentYear]; //currentYear is an int variable
int inc=1;
for(int i=0;i<currentYear;i++)

    birthYear[i]= inc;
    inc++;


birthYearBox = new JComboBox(birthYear); //this is the line in which the error occurs

我希望这些为 ComboBox 中的整数,以便我可以从中减去。我是否必须用字符串填充 ComboBox,然后在输入后将它们设为整数?或者有没有办法用 int[] 实际填充 ComboBox?

【问题讨论】:

【参考方案1】:

JCombobox 是泛型,但 Java 泛型不支持原始类型(而 int 是原始类型)。

所以请改用Integer 数组:

Integer[] birthYear = new Integer[currentYear]; //currentYear is an int variable
int inc=1;
for(int i=0;i<currentYear;i++)
    birthYear[i]= inc;
    inc++;

JComboBox<Integer> birthYearBox = new JComboBox<>(birthYear);

【讨论】:

【参考方案2】:

如果您只想使用整数,另一种选择:

JComboBox<Integer> comboBox = new JComboBox<>();

comboBox.addItem(1);
comboBox.addItem(2);

否则,你也可以试试这个:

String[] birthYear = new String[currentYear]; //currentYear is an int variable
int inc=1;
for(int i=0;i<currentYear;i++)

    birthYear[i]= inc + "";
    inc++;


birthYearBox = new JComboBox(birthYear); 

如果需要,您可以使用 Integer.praseInt("1") 将数字的字符串表示形式为 int 类型。

希望这会有所帮助。

【讨论】:

以上是关于使用 int[] 填充 JComboBox的主要内容,如果未能解决你的问题,请参考以下文章

int_leastN_t 和 int_fastN_t 可以有填充位吗?

boost::lexical_cast int 用零填充字符串

从 Enumerable.Range 或 List<int> 填充 List<dynamic>

如果 char 在 int 之后,为啥要添加填充?

将 int 数组从零填充到定义的数字

如何用“int32_t”值快速填充内存?