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

是否可以使用 int[] 填充 JComboBox?我正在编写一个代码,它将使用一个填充了年份(整数)的 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?

【问题讨论】:

    标签: java arrays swing int jcombobox


    【解决方案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 类型。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2014-10-03
        • 2010-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-03
        • 1970-01-01
        相关资源
        最近更新 更多