我需要找到连接JComboBox
和JButton
的分辨率。意思就是用JComboBox
中的选定项目做“按钮”。通过JComboBox的元素通过JButton执行某些操作
我创建为
公共类DeleteButtonController一个控制器实现的ActionListener { 私人OceanGui视图; 私有OceanInterface模型; 私人JComboBox列表;
public DeleteButtonController(OceanGui view, Ocean model, JComboBox list) {
this.view = view;
this.model = model;
this.list = list;
}
@Override
public void actionPerformed(ActionEvent arg0) {
OceanObject obj = (OceanObject) list.getSelectedItem();
int index = model.getIndexOfClosestOceanObject(obj.getPosition()[0], obj.getPosition()[1]);
model.delOceanObject(index);
}
}
在我的GUI我这样做:
this.buttonArray[1] = new JButton(this.buttonCaptions[1]);
this.buttonArray[1].addActionListener(new DeleteButtonController(this, model, objects));
panel.add(this.buttonArray[1]);
我挣例外是:
异常在线程 “AWT-EventQueue的-0” java.lang.ClassCastException: java.lang.String不能转换为 fpp.oceanlife.model.OceanObject在 infpp.oceanlife.controller.DeleteButtonController.actionPerformed(DeleteButtonController.java:25) 在 javax.swing.AbstractButton.fireActionPerformed(未知 来源)在 javax.swing.AbstractButton中的$处理器。在在 javax.swing.DefaultButtonModel.setPressed(未知 源) javax.swing.DefaultButtonModel.fireActionPerformed(未知 源)在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased的actionPerformed(未知 源)(未知 源)在 java.awt.Component.processMouseEvent(未知 源)在 javax.swing.JComponent.processMouseEvent(未知 源)处 java.awt.Container.processEvent(未知 源) java.awt.Component.processEvent(未知 源)在 java.awt.Component.dispatchEventImpl (未知 源)处 java.awt.LightweightDispatcher.retargetMouseEvent(未知 源) java.awt.Container.dispatchEventImpl(未知 源)在 java.awt.Component.dispatchEvent(未知 源)在 的java .awt.LightweightDispatcher.processMouseEvent(Unknown Source)at java.awt .LightweightDispatcher.dispatchEvent(未知 源)处 java.awt.Window.dispatchEventImpl(未知 源) java.awt.Container.dispatchEventImpl(未知 源)在 java.awt.Component.dispatchEvent(未知 源)在在 java.awt.EventDispatchThread java.awt.EventQueue.dispatchEvent(未知 源)在 java.awt.EventDispatchThread.pumpOneEventForFilters(未知 源)在 java.awt.EventDispatchThread.pumpEventsForFilter(未知 源) .pumpEventsForHierarchy(Unknown Source)at java.awt .EventDispatchThread.pumpEvents(Unknown Source)at java.awt.EventDispatchThread。pumpEvents(未知 来源)在 java.awt.EventDispatchThread.run(未知 来源)
在第25行,它说
OceanObject obj = (OceanObject) list.getSelectedItem();