0

快速提问。我有两个 JComboBox 填充了从 2010 年到 2018 年的一串年份。一个组合框与“开始日期”标签相关联,一个组合框与“结束日期”标签相关联。我想确保在“结束日期”中选择的年份小于在“开始日期”中选择的年份。我已经查找了有关如何比较值的方法是组合框,但我只是找不到适合我的具体示例的方法。

这是一些代码:

String[] YEARS = {"Select a Year", "2010", "2011", "2012", "2013", "2014", 
    "2015", "2016", "2017", "2018",};

//Start Date
yearLong = new JComboBox(YEARS);
     c.fill = GridBagConstraints.HORIZONTAL;
     c.gridx = 3;
     c.gridy = 1;
     c.gridwidth = 1;
     yearLong.setSelectedItem(Integer.toString(year));
     pane.add(yearLong, c);
//End Date
         yearLong1 = new JComboBox(YEARS);
     c.fill = GridBagConstraints.HORIZONTAL;
     c.gridx = 3;
     c.gridy = 3;
     c.gridwidth = 1;
     pane.add(yearLong1, c);

为了向你证明我已经尝试了一些东西,到目前为止我已经这样做了以进行错误检查:

 //Checks to see if the End Date precedes the Start Date
         } else if ((yearLong.getSelectedItem() > yearLong1.getSelectedItem())) {
             JOptionPane.showMessageDialog(null,  "Error 10: The End Date cannot precede the Start Date.",
             "Error!",
             JOptionPane.ERROR_MESSAGE);
             return;
         }

但是,我不断收到一条错误消息,说 > 操作不能在那里使用。我知道 == 操作可以,所以我不确定我做错了什么?

像往常一样,感谢您的帮助!

4

1 回答 1

2

错误的原因是getSelectedItem()实际上返回Object没有>定义运算符。

由于您使用字符串填充了组合,因此在比较日期时应该将字符串转换为整数。你可以使用Integer.parseInt()方法。只需确保正确处理“选择年份”字符串即可。如果需要,您还可以使用整数填充组合框,它Object在其构造函数中接受数组。有关更多详细信息和示例,请参阅如何使用组合框

于 2013-04-04T16:54:58.133 回答