C
Camino
Gast
Hallo,
ich versuche gerade Komponenten in einem GridBagLayout auszutauschen. Und zwar hab ich auf einem JPanel weitere Panel (FormularPanel, ButtonPanel) liegen. Auf dem FormularPanel sind mehrere Komponenten mit einem GridBagLayout angeordnet. Nun möchte ich beim Anklicken einer JCheckBox über einen ItemListener zwei Komponenten innerhalb dieses GridBagLayouts durch zwei andere Komponenten ersetzen. Ich hab das jetzt erstmal mit einem removeLayoutComponent(<Komponente>) beim GridBagLayout versucht, um eine Komponente zu entfernen, aber es passiert nichts. Wenn ich dann noch validate beim FormularPanel aufgerufen hatte, ist zwar die gewünschte Komponente aus dem GridBagLayout verschwunden, taucht aber dafür ganz oben in der linken Ecke wieder auf.
Hier mal der Code-Ausschnitt mit dem ItemListener:
Diese CheckBox sowie die Komponenten, die später ausgetauscht werden sollen, werden danach im Code mit einer Methode addComponent(...) in das GridBagLayout des FormularPanels eingebaut.
Geht das überhaupt, dass ich in einem bestehenden GridBagLayout Komponenten austauschen kann? Kann mir wer weiterhelfen, wie ich das hinkriege oder einen Tipp geben, wo ich weitere Infos oder Beispiele dazu finde.
Gruss
Camino
ich versuche gerade Komponenten in einem GridBagLayout auszutauschen. Und zwar hab ich auf einem JPanel weitere Panel (FormularPanel, ButtonPanel) liegen. Auf dem FormularPanel sind mehrere Komponenten mit einem GridBagLayout angeordnet. Nun möchte ich beim Anklicken einer JCheckBox über einen ItemListener zwei Komponenten innerhalb dieses GridBagLayouts durch zwei andere Komponenten ersetzen. Ich hab das jetzt erstmal mit einem removeLayoutComponent(<Komponente>) beim GridBagLayout versucht, um eine Komponente zu entfernen, aber es passiert nichts. Wenn ich dann noch validate beim FormularPanel aufgerufen hatte, ist zwar die gewünschte Komponente aus dem GridBagLayout verschwunden, taucht aber dafür ganz oben in der linken Ecke wieder auf.
Hier mal der Code-Ausschnitt mit dem ItemListener:
Java:
...
// Listener für die Checkbox Auslandsüberweisung
ItemListener listenerAuslandsueberweisung = new ItemListener() {
public void itemStateChanged( ItemEvent e ) {
if (e.getStateChange() == ItemEvent.SELECTED) {
gblFormular.removeLayoutComponent(tfBLZ);
}
else {
// neue Komponenten hinzufügen...
}
}
};
cbAuslandsueberweisung = new JCheckBox( "Auslandsüberweisung" );
cbAuslandsueberweisung.addItemListener( listenerAuslandsueberweisung );
...
Diese CheckBox sowie die Komponenten, die später ausgetauscht werden sollen, werden danach im Code mit einer Methode addComponent(...) in das GridBagLayout des FormularPanels eingebaut.
Geht das überhaupt, dass ich in einem bestehenden GridBagLayout Komponenten austauschen kann? Kann mir wer weiterhelfen, wie ich das hinkriege oder einen Tipp geben, wo ich weitere Infos oder Beispiele dazu finde.
Gruss
Camino