我用这样的东西做了一个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月是jcombobox中的默认选定项目" months"
从未在if-else语句和字符串数组声明中出现拼写错误(如果您在我的示例中发现错误的拼写错误)
"月"和"天" jcombobox在jframe中是可见的,从来没有在我现在制作的gui中的jcombobox中犯错误
答案 0 :(得分:4)
我可以在这里说几点:
.
条件equals
之后您还有if
。始终尽可能使用预定义的数组。在这里你应该使用预定义数组几个月,如下所示:
String[] mths = (new DateFormatSymbols()).getMonths();
不是每次都重新初始化天组合框,而是使用模型并更改其值。