在下面的代码中,我尝试创建一个 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);
最佳答案
如果您正在寻找解决方案,请尝试以下方式:
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));
关于java - 如何正确使用我的值作为 JComboBox.setModel() 的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24391798/