在下面的代码中,我尝试创建一个DefaultListModel
对象用于我的JComboBox
。
显然,setModel()
方法只接受一个ComboBoxModel对象。我试图转换它,我得到了例外,java.lang.ClassCastException
。
我已经了解了如何解决这个具体问题,但我找不到任何有用的东西。
然后我尝试创建一个ComboBoxModel对象,但我了解到这个类是抽象的。如何绕过此问题,并获取setModel()
的有效参数?
private void setComboBoxYears(int numberOfYears, JComboBox comboBox) {
DefaultListModel<Integer> years = new DefaultListModel<>();
for(int i = 1; i <= numberOfYears; i++)
years.addElement(i);
comboBox.setModel((ComboBoxModel) years);
答案 0 :(得分:3)
如果您正在寻找解决方案,请尝试以这种方式:
final JComboBox<Integer> comboBox = new JComboBox<Integer>();
Integer[] years = new Integer[numberOfYears];
for (int i = 0; i < numberOfYears; i++)
years[i] = i + 1;
comboBox.setModel(new DefaultComboBoxModel<Integer>(years));
答案 1 :(得分:1)