【发布时间】:2015-01-28 19:54:53
【问题描述】:
我正在使用 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 时出现异常:Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: brutus.BrutusUI$2 cannot be cast to javax.swing.DefaultListModel。 BrutusUI 是由 NetBeans 生成的 swing UI 类(它只是包含所有组件的应用程序的主要入口点)。但是,NetBeans 向我显示 lFrequencyTable.getModel(); 的返回值是 ListModel 那么它为什么要尝试将 UI 类转换为 DefaultListModel?
【问题讨论】: