G
Guest
Gast
Hi,
ich habe zwei Komponenten des Typs JCheckBoxMenuItem die die selbe aufgabe haben.
Wenn eine von den beiden Komponenten angeklickt wird, sollen beide Komponenten des selben Status erhalten.
Es handelt sich für den User scheinbar um ein und die selbe Komponente, an 2 verschiedenen Plätzen.
Problem ist nun das jede Box das Event der anderen auslöst, bzw mit meiner jetzigen Lösung das deselektieren nicht mehr geht, weil ja eine Box zum Zeitpunkt des deselektierens noch selektiert ist.
Mein Listener:
Meine Methode setAutoSave:
Vorher hatte ich anstatt eines ActionListeners einen ItemListener. Ich sehe 2 möglichkeiten, welche ich beide nicht umsetzen kann:
1. In der jetzigen Variante if ( autoSaveItem.getState() || autoSaveItem2.getState() ) durch sowas wie if ( evt.getComponent.getState() ) zu ersetzen.
2. In der Itemlistener-Methode abfragen ob das Ereignis durch den Benutzer oder eine Methode ausgelöst wurde.
Wie gesagt weis ich bei beidem nicht wie ich es umsetzen kann.
Ich könnte natürlich auch eine eigene Klasse myOwnButton (erbt von JCheckBoxMenuItem) erstellen, aber das ist mir ehrlichgesagt zu viel aufwand, dieses Objekt dann auch noch in den Netbeans-GUI-Builder als Bean zu intigrieren, sollte es einfacher gehen :autsch:
Vielen Dank
Gruß
ich habe zwei Komponenten des Typs JCheckBoxMenuItem die die selbe aufgabe haben.
Wenn eine von den beiden Komponenten angeklickt wird, sollen beide Komponenten des selben Status erhalten.
Es handelt sich für den User scheinbar um ein und die selbe Komponente, an 2 verschiedenen Plätzen.
Problem ist nun das jede Box das Event der anderen auslöst, bzw mit meiner jetzigen Lösung das deselektieren nicht mehr geht, weil ja eine Box zum Zeitpunkt des deselektierens noch selektiert ist.
Mein Listener:
Code:
private void autoSaveItem2ActionPerformed(java.awt.event.ActionEvent evt) {
if ( autoSaveItem.getState() || autoSaveItem2.getState() )
SmallMethods.setAutoSave(true);
else
SmallMethods.setAutoSave(false);
}
Meine Methode setAutoSave:
Code:
/**
* Sets the autoSave on or off (true or false).
* @param booleanValue True or false
*/
public static void setAutoSave(boolean booleanValue) {
autoSave = booleanValue;
if( booleanValue ) {
MainFrame.saveItem.setEnabled (false);
MainFrame.autoSaveItem.setState (true);
MainFrame.autoSaveItem2.setState(true);
}
else {
MainFrame.saveItem.setEnabled (true);
MainFrame.autoSaveItem.setState (false);
MainFrame.autoSaveItem2.setState(false);
}
}
Vorher hatte ich anstatt eines ActionListeners einen ItemListener. Ich sehe 2 möglichkeiten, welche ich beide nicht umsetzen kann:
1. In der jetzigen Variante if ( autoSaveItem.getState() || autoSaveItem2.getState() ) durch sowas wie if ( evt.getComponent.getState() ) zu ersetzen.
2. In der Itemlistener-Methode abfragen ob das Ereignis durch den Benutzer oder eine Methode ausgelöst wurde.
Wie gesagt weis ich bei beidem nicht wie ich es umsetzen kann.
Ich könnte natürlich auch eine eigene Klasse myOwnButton (erbt von JCheckBoxMenuItem) erstellen, aber das ist mir ehrlichgesagt zu viel aufwand, dieses Objekt dann auch noch in den Netbeans-GUI-Builder als Bean zu intigrieren, sollte es einfacher gehen :autsch:
Vielen Dank
Gruß