2

我用这样的东西做了一个gui:

String[] days29 = {"1",....."29"};
String[] days30 = {"1",....."30"};
String[] days31 = {"1",....."31"};
String[] mths = {"January",..."December"};

JComboBox months = new JComboBox(mths);
JComboBox days = new JComboBox();

public daysAdjuster(){
    if(months.getSelectedItem().equals.("January")){
        days = new JComboBox(days31);
    }else if(months.getSelectedItem().equals.("February")){
        days = new JComboBox(days29);
    }else if(months.getSelectedItem().equals.("April")){
        days = new JComboBox(days30);
    }

public static void main(String[] args){
// JFrame codes here
daysAdjuster();
}

我想要做的是,如果我在 JComboBox "months" 中选择 31 天的月份,JComboBox "days" 将使用 "days31" 字符串数组输出项目,如果我选择只有 30 天的月份,它将输出字符串我的日子 JComboBox 中的数组“days30”。

但我得到的唯一结果是 [[ days = new JComboBox(days31) ]] 即使我选择了不同的月份。例如,如果我选择 Febraury,它仍然会显示一个带有“days31”字符串数组的“days”JComboBox。显然,我在我的日子里弄错了Adjuster或者只是弄错了,请纠正我的错误,无法弄清楚。提前致谢!

笔记:

  1. 一月是jcombobox“月”中的默认选择项

  2. 从未在 if-else 语句和字符串数组声明中犯过拼写错误(以防您在我的示例中发现拼写错误)

  3. “月”和“天” jcombobox 在 jframe 中可见,我现在正在制作的 gui 中的 jcombobox 从未出错

4

1 回答 1

4

我可以在这里提出几点:

  1. 你有一个额外.的条件equalsif
  2. 始终尽可能使用预定义的数组。在这里,您应该使用几个月的预定义数组,如下所示:

    String[] mths = (new DateFormatSymbols()).getMonths();

  3. 不要每次都重新初始化 days 组合框,而是使用模型并更改其值。

  4. 参考:
于 2013-02-25T06:52:41.290 回答