Hi Leutz.
Ich habe ein Problem mit ner JComboBox.
Diese wird zur laufzeit mit anderen Daten gefüllt.
je nach dem was ich brauche nehme ich andere Arrays her und fülle die JComboBox.
Dies funktioniert bis dahein einwandfrei.
Da ich beim ändern des Items paar sachen machen muss(z.B. prüfen ob ein anderes JTextField Daten enthält die zugelassen sind) habe ich mir nen ActionListener angehängt.
nun bekomme ich hier nen Fehler
.. cmb_auswahl.removeAllItems();
Eine IndexOutOfBounds Exception..
...
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
at FerixClient.V0230$1.actionPerformed(V0230.java:139)
at javax.swing.JComboBox.fireActionEvent(Unknown Source)
at javax.swing.JComboBox.contentsChanged(Unknown Source)
at javax.swing.JComboBox.intervalRemoved(Unknown Source)
at javax.swing.AbstractListModel.fireIntervalRemoved(Unknown Source)
at javax.swing.DefaultComboBoxModel.removeAllElements(Unknown Source)
at javax.swing.JComboBox.removeAllItems(Unknown Source)
at FerixClient.V0230.fillComboBox(V0230.java:553)****** vor remove
at FerixClient.V0230.actionPerformed(V0230.java:518)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Die Arrays passen alle und es werden immer die richtigen genommen.. Das habe überprüft.
Kann ich das evtl ohne diesen ActionListener lösen.. Ich muss halt z.B. wenn dieses Feld ein Datumsfeld ist
( if(arr_column_typ[cmb_auswahl.getSelectedIndex()].equals("D")) ) Felder vorbelegen usw.
weiss jemand was da falsch läuft???
gruss
MScalli
Ich habe ein Problem mit ner JComboBox.
Diese wird zur laufzeit mit anderen Daten gefüllt.
Code:
/**
* füllt die Combo Box mit allen bestehenden Feldern
* @param arr_column_names
*/
private void fillComboBox(String[] arr_column_names) {
System.out.println("****** vor remove");
cmb_auswahl.removeAllItems();
cmb_sort.removeAllItems();
System.out.println("****** nach remove");
for(int i=0; i < arr_column_names.length; i++)
{
cmb_auswahl.addItem(arr_column_names[i]);
cmb_sort.addItem(arr_column_names[i]);
}
}
je nach dem was ich brauche nehme ich andere Arrays her und fülle die JComboBox.
Dies funktioniert bis dahein einwandfrei.
Da ich beim ändern des Items paar sachen machen muss(z.B. prüfen ob ein anderes JTextField Daten enthält die zugelassen sind) habe ich mir nen ActionListener angehängt.
Code:
cmb_auswahl = new JComboBox();
cmb_auswahl.setBounds(10, 30, 200, 25);
cmb_auswahl.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("********" + arr_column_typ[cmb_auswahl.getSelectedIndex()]);
if(arr_column_typ[cmb_auswahl.getSelectedIndex()].equals("D")){
btn_dat_von.setVisible(true);
btn_dat_bis.setVisible(true);
tf_von.setEnabled(false);
tf_bis.setEnabled(false);
tf_von.setText(MyDate.getCurrentDate4Calendar());
tf_bis.setText(MyDate.getCurrentDate4Calendar());
} else {
btn_dat_von.setVisible(false);
btn_dat_bis.setVisible(false);
tf_von.setEnabled(true);
tf_bis.setEnabled(true);
}
if(arr_column_typ[cmb_auswahl.getSelectedIndex()].equals("I")){
tf_von.setText("0");
tf_bis.setText("0");
}
if(arr_column_typ[cmb_auswahl.getSelectedIndex()].equals("C")){
tf_von.setText("");
tf_bis.setText("");
}
}
});
pan_auswahl.add(cmb_auswahl);
nun bekomme ich hier nen Fehler
.. cmb_auswahl.removeAllItems();
Eine IndexOutOfBounds Exception..
...
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
at FerixClient.V0230$1.actionPerformed(V0230.java:139)
at javax.swing.JComboBox.fireActionEvent(Unknown Source)
at javax.swing.JComboBox.contentsChanged(Unknown Source)
at javax.swing.JComboBox.intervalRemoved(Unknown Source)
at javax.swing.AbstractListModel.fireIntervalRemoved(Unknown Source)
at javax.swing.DefaultComboBoxModel.removeAllElements(Unknown Source)
at javax.swing.JComboBox.removeAllItems(Unknown Source)
at FerixClient.V0230.fillComboBox(V0230.java:553)****** vor remove
at FerixClient.V0230.actionPerformed(V0230.java:518)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Die Arrays passen alle und es werden immer die richtigen genommen.. Das habe überprüft.
Kann ich das evtl ohne diesen ActionListener lösen.. Ich muss halt z.B. wenn dieses Feld ein Datumsfeld ist
( if(arr_column_typ[cmb_auswahl.getSelectedIndex()].equals("D")) ) Felder vorbelegen usw.
weiss jemand was da falsch läuft???
gruss
MScalli