我用这样的东西制作了一个图形用户界面:
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,它仍然显示一个“days”JComboBox,其中包含“days31”字符串数组。显然,我在我的日子里犯了一个错误Adjuster或者只是以错误的方式进行了操作,请纠正我的错误,无法弄清楚。提前致谢!
注释:
一月是 jcombobox“月份”中默认选定的项目
在 if-else 语句和字符串数组声明中从未犯过拼写错误(以防您在我的示例中发现一些拼写错误)
“月”和“天”jcombobox 在 jframe 中可见,我现在正在制作的 gui 中的 jcombobox 从未犯过错误
最佳答案
我可以在这里提出几点:
- 在
if
条件中的equals
后面有一个额外的.
。 尽可能始终使用预定义的数组。在这里,您应该使用预定义的数组,如下所示:
String[] mths = (new DateFormatSymbols()).getMonths();
不要每次都重新初始化天数组合框,而是使用模型并更改其值。
- 引用文献:
关于java - 在不同的 jcombobox 中选择后如何设置 jcombobox 的不同字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061346/