Java Swing 类无法转换为 DefaultListModel

标签 java swing netbeans awt

我正在使用 Swing 开发一个项目,并且有以下事件处理程序:

private void txtInputKeyPressed(java.awt.event.KeyEvent evt) {                                    

    if (evt.getKeyCode() == ENTER) {
        DefaultListModel listModel = (DefaultListModel) lFrequencyTable.getModel();

        listModel.removeAllElements();

        ArrayList<FrequencyChar> table = 
                engine.computeFrequencyTable(txtInput.getText());

        for (FrequencyChar f: table) {
            listModel.addElement(f.character);
        }
    }
} 

许多代码是从 Netbeans 自动生成的,这就是为什么我没有发布所有 UI 代码。当我尝试初始化 listModel 时遇到异常:线程“AWT-EventQueue-0”java.lang.ClassCastException 中的异常:brutus.BrutusUI$2 无法转换为 javax.swing.DefaultListModelBrutusUI 是 NetBeans 生成的 swing UI 类(它只是包含所有组件的应用程序的主要入口点)。但是,NetBeans 向我显示 lFrequencyTable.getModel(); 的返回值是一个 ListModel 那么为什么它会尝试将 UI 类转换为 DefaultListModel?

最佳答案

它并不是尝试将 BrutusUI 转换为 DefaultListModel,而是将 brutus.BrutusUI$2 转换为 $2表示在类 BrutusUI 内声明的匿名类(实现 ListModel)。

关于Java Swing 类无法转换为 DefaultListModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28201203/

相关文章:

java - Java SE 应用程序和 Java EE 应用程序之间的区别?

java - 在 Java 中将 PriorityQueue 与任何比较器一起使用

java - 按降序对数组中的特定索引进行排序

java - MyBatis 问题与 IN 条件 <foreach with List inside a Map

Java ScrollPane 重叠内容

java - 崩溃后在netbeans中恢复java文件

java - Java中Thread.currentThread().join()的使用

java - 创建 exe 或类似文件

java - 将 System.out.println 或 stdout 数据捕获到 swing 备忘录(大数据)

netbeans - NetBeans 8 字典位于哪里?