我需要找到連接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();