Hi,
ich habe Umsetzungsprobleme mit dem Auslagern einer Methode, die die Aufgabe hat aus einem Frame "oldFrame" heraus ein neues Frame "newFrame" zu öffnen, sich dabei zu "disablen" und erst beim Schließen des zweiten Frames sich wieder zu "enablen" und sich den Fokus zu holen.
Das Öffnen von Frames aus Frames findet bei mir sehr sehr häufig statt, so dass ich mich dazu entschloss dieses als Methode auszulagern.
Das ganze funktioniert auch, wenn auch nicht wirklich elegant (siehe nächster Codeauszug), allerdings verliere ich durch das Auslagern die Möglichkeit in der Methode
noch zusätzliche Methode aufrufen zu können, die von Klasse zu Klasse natürlich unterschiedlich sein können.
[HIGHLIGHT="Java"]public static void openFrame(final JFrame oldFrame, final JFrame newFrame){
oldFrame.setEnabled(false);
new JFrameShower(newFrame);
newFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(final WindowEvent e) {
newFrame.dispose();
oldFrame.setEnabled(true);
oldFrame.setState(Frame.NORMAL);
oldFrame.requestFocus();
}
});
}[/HIGHLIGHT]
Jemand einen Rat, wie ich dieses trotzdem auslagern kann und trotzdem noch beim Schließen individuelle Methoden aufrufen kann oder lohnt sich das Auslagern eigentlich nicht
und ich sollte z.B. "JFSettings" wie im ersten Quellcode einfach so behandeln:
[HIGHLIGHT="Java"]...
protected void buttonSettingsActionPerformed(ActionEvent evt) {
setEnabled(false);
final JFSettings frame = new JFSettings(this);
new Methods.JFrameShower(frame);
frame.addWindowListener(new WindowAdapter() {
public void windowClosed(final WindowEvent e) {
enableFrame();
// Moeglichkeit zu weiteren Methoden nach Schließen des Frames
}
});
}
private void enableFrame() {
this.setEnabled(true);
this.setState(Frame.NORMAL);
this.requestFocus();
}
...
[/HIGHLIGHT]
Vielen Dank schon mal für eure Anregungen und etwaige Fragen.
ich habe Umsetzungsprobleme mit dem Auslagern einer Methode, die die Aufgabe hat aus einem Frame "oldFrame" heraus ein neues Frame "newFrame" zu öffnen, sich dabei zu "disablen" und erst beim Schließen des zweiten Frames sich wieder zu "enablen" und sich den Fokus zu holen.
Das Öffnen von Frames aus Frames findet bei mir sehr sehr häufig statt, so dass ich mich dazu entschloss dieses als Methode auszulagern.
Das ganze funktioniert auch, wenn auch nicht wirklich elegant (siehe nächster Codeauszug), allerdings verliere ich durch das Auslagern die Möglichkeit in der Methode
Code:
windowClosing(...
[HIGHLIGHT="Java"]public static void openFrame(final JFrame oldFrame, final JFrame newFrame){
oldFrame.setEnabled(false);
new JFrameShower(newFrame);
newFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(final WindowEvent e) {
newFrame.dispose();
oldFrame.setEnabled(true);
oldFrame.setState(Frame.NORMAL);
oldFrame.requestFocus();
}
});
}[/HIGHLIGHT]
Jemand einen Rat, wie ich dieses trotzdem auslagern kann und trotzdem noch beim Schließen individuelle Methoden aufrufen kann oder lohnt sich das Auslagern eigentlich nicht
und ich sollte z.B. "JFSettings" wie im ersten Quellcode einfach so behandeln:
[HIGHLIGHT="Java"]...
protected void buttonSettingsActionPerformed(ActionEvent evt) {
setEnabled(false);
final JFSettings frame = new JFSettings(this);
new Methods.JFrameShower(frame);
frame.addWindowListener(new WindowAdapter() {
public void windowClosed(final WindowEvent e) {
enableFrame();
// Moeglichkeit zu weiteren Methoden nach Schließen des Frames
}
});
}
private void enableFrame() {
this.setEnabled(true);
this.setState(Frame.NORMAL);
this.requestFocus();
}
...
[/HIGHLIGHT]
Vielen Dank schon mal für eure Anregungen und etwaige Fragen.
Zuletzt bearbeitet: