Guten Tag!Fenster schließen ohne zu schließen Anwendung
Ich habe diesen Code:
private static class ClickListener implements ActionListener {
public ClickListener() {
}
@Override
public void actionPerformed(ActionEvent e) {
JFrame frame = new JFrame();
JLabel label = new JLabel("Opção Indisponivel");
JPanel panel = new JPanel();
frame.add(label, BorderLayout.CENTER);
frame.setSize(300, 400);
JButton button = new JButton("Voltar");
button.addActionListener(new CloseWindowListener());
panel.add(button);
frame.add(panel, BorderLayout.SOUTH);
frame.setVisible(true);
}
}
private static class CloseWindowListener implements ActionListener {
public CloseWindowListener() {
}
@Override
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
}
Was will ich tun ist, wenn ich auf die Schaltfläche „voltar“ (die in einem anderen Fenster ist, nicht auf der „main“ ein, wie Sie sehen können) Es schließt die Fenster, aber nicht die App selbst. Die setVisible-Zeile gibt mir einen Fehler darüber, dass ich nicht auf einen statischen Kontext verweisen kann, den ich verstehe, weil ich die Referenz des Frames brauche. Wie löse ich das?
EDIT: JFrame zu JDialog geändert, aber immer noch keinen Erfolg. Beide Fenster werden heruntergefahren.
Vielen Dank im Voraus, Diogo Santos
Ihre GUI sollte nur ein Hauptanwendungsfenster haben - einen JFrame. Alle anderen untergeordneten oder abhängigen Fenster sollten JDialogs sein, keine JFrames. Wenn diese geschlossen werden, kann die Anwendung nicht geschlossen werden. –
Siehe auch [Die Verwendung mehrerer JFrames, gute/schlechte Praxis?] (Http://stackoverflow.com/questions/9554636) –
@HovercraftFullOfEels, Diese Frage wurde als ein Duplikat markiert von: http: // stackoverflow.com/questions/4268749/how-to-close-a-jframe-without-closed-the-main-program. Aber ich glaube nicht, dass es ein Duplikat ist, also habe ich die Frage erneut eröffnet. Diese Frage bezieht sich auf 'Die setVisible-Zeile gibt mir einen Fehler darüber, dass von einem statischen Kontext, den ich verstehe, nicht referenziert werden kann, da ich die Referenz des Frames benötige. Wie löse ich das? ' – camickr