java - 如何正确使用我的值作为 JComboBox.setModel() 的参数?

标签 java swing exception combobox defaultlistmodel

在下面的代码中,我尝试创建一个 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/

相关文章:

java - 半透明 JPanel 不清除背景/在 Linux 中显示背景伪像

android - "already added"ormlite 和 gradle 异常

java - 已经抛出的 FileNotFoundException

java - 初始化 WeakReference 对象以避免空检查

java - 如何获取动态创建的复选框android的值?

java - 如何解析xml中的字符串。安卓

java - java中的opengl加速问题

java - 如何重置 JTree?

java - 在 Swing 中监听新的子组件

exception - iOS UIWebView DOM异常18如何排查?