【问题标题】:How to set different string array of a jcombobox after selection in a different jcombobox?在不同的jcombobox中选择后如何设置jcombobox的不同字符串数组?
【发布时间】:2023-03-30 10:55:02
【问题描述】:

我用这样的东西制作了一个 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 从未出错

【问题讨论】:

    标签: java swing jcombobox


    【解决方案1】:

    我可以在这里提出几点:

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

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

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

    4. 参考资料:

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-23
    • 2019-12-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    相关资源
    最近更新 更多