如何在不同的jcombobox中选择后设置jcombobox的不同字符串数组?

时间:2013-02-25 06:34:36

标签: java swing jcombobox

我用这样的东西做了一个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中选择31天的月份"月份" JComboBox" days"将使用" days31"输出项目字符串数组,如果我选择仅30天的月份,它将输出字符串数组" days30"在我的日子里JComboBox。

但我唯一得到的是[[days = new JComboBox(days31)]],即使我选择了不同的月份。例如,如果我选择Febraury,它仍会显示" days" JComboBox与" days31"用它的字符串数组。显然,我在我的daysAdjuster中犯了一个错误,或者只是错误的方式,请纠正我的错误,无法弄清楚。提前谢谢!

注意:

  1. 1月是jcombobox中的默认选定项目" months"

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

  3. "月"和"天" jcombobox在jframe中是可见的,从来没有在我现在制作的gui中的jcombobox中犯错误

1 个答案:

答案 0 :(得分:4)

我可以在这里说几点:

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

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

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

  4. 参考文献: