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

标签 java swing jcombobox

我用这样的东西制作了一个图形用户界面:

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或者只是以错误的方式进行了操作,请纠正我的错误,无法弄清楚。提前致谢!

注释:

  1. 一月是 jcombobox“月份”中默认选定的项目

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

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

最佳答案

我可以在这里提出几点:

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

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

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

  4. 引用文献:

关于java - 在不同的 jcombobox 中选择后如何设置 jcombobox 的不同字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061346/

相关文章:

java - TableCellEditor 可以知道它正在编辑哪个 JTable 吗?

java - 使用按钮从另一个类中的数组填充 JTextArea

java - 设置 JCombobox 中项目的高度

java - 从 JComboBox 中选择名称后,如何获得积分以显示在我的程序上?

java - JScrollPane中的JPanel,如何防止自动滚动

java - 如何从 java 类更新 MainAcitivity 的 Searchview 和 textView 的值

java - 可编辑的 JComboBox

java - 当 JComboBox 位于 JLayeredPane 中的 JFreeChart 上方时消失

Java 单元测试模拟 HttpServletRequest getResourceAsStream

java - 使用 java Runtime 类为动态值选择文件