Ehm... Credo di aver fatto un po' di casino. Ho modificato la tua classe facendo in modo che ci sia una stringa visualizzata e un intero come valore che serve a me... E' sbagliato, eh?
Qui sotto il codice... Qualche idea?
Grazie!
codice:
// Grazie a simo7784
public class ComboItem{
private String name;
private int value;
/** Permette di associare una stringa (che sarà visualizzata nella comboBox) a un valore**/
public ComboItem(String name, int value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public int getValue() {
return value;
}
public String toString() {
//la combobox stampa il toString degli oggetti
return name;
}
}
codice:
L'eccezione:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Integer
at GUI.NewJFrame.jComboBox1ActionPerformed(NewJFrame.java:371)
at GUI.NewJFrame.access$000(NewJFrame.java:16)
at GUI.NewJFrame$1.actionPerformed(NewJFrame.java:101)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1197)
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1268)
at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:100)
at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:88)
at javax.swing.DefaultComboBoxModel.addElement(DefaultComboBoxModel.java:126)
at javax.swing.JComboBox.addItem(JComboBox.java:690)
at GUI.NewJFrame.propOf(NewJFrame.java:627)
at GUI.NewJFrame.setUp(NewJFrame.java:434)
at GUI.NewJFrame.jButton2ActionPerformed(NewJFrame.java:401)
at GUI.NewJFrame.access$200(NewJFrame.java:16)
at GUI.NewJFrame$3.actionPerformed(NewJFrame.java:136)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5501)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5266)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3968)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
---------------------------
Questo per riempire la combo:
caricaCombo(jComboBox1,arrString,arrInt, nEd);
public void caricaCombo(javax.swing.JComboBox combo, String arrS[], int arrI[], int nEd){
ComboItem ci[] = new ComboItem[nEd];
if(nEd != 0){
combo.setEnabled(true);
combo.removeAllItems();
//Riempio la comboBox
for(int i = 0; i< nEd; i++){
ci[i] = new ComboItem(arrS[i],arrI[i]);
combo.addItem(ci[i]);
}
}
}
---------------------------
Action
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
int num = 0;
if((ComboItem)jComboBox1.getSelectedItem()!=null){
jComboBox2.setEnabled(true);
ComboItem item = (ComboItem)jComboBox1.getSelectedItem();
num = item.getValue();
... Lavoro con num...
}
}