Swing Ein dahinterliegendes Fenster nach dem öffnen schließe

Status
Nicht offen für weitere Antworten.

d3x84

Mitglied
Hi,
ich hab mir ein Fenster erstellt und nach dem klicken auf einen Button öffnet sich ein neues.... jedoch möchte ich das sich das dahinterliegende komplett schließt.
Ich hab es mit
Java:
  private void actionPerformed(java.awt.event.ActionEvent evt) {                                 
new Fenster1().setVisible(false);
new Fenster2().setVisible(true);
}
versucht aber das funktioniert nicht....

Dann eine Grundsatz frage...
wenn ich ein Fenster in den Vordergrund öffne,
ist es möglich es so zu öffnen das mann im dahinterliegenden Fenster noch arbeiten kann?

Dank im Vorraus ^^

EDIT:
bei fenster1 handelt sich um das erste fenster das in Main mit
Java:
public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Fenster1().setVisible(true);
            }
        });
    }
aufgerufen wird.

Muss ich hier neif schleife machen vonwegen wenn fenster2 auf is mach fenster 1 zu?
 
Zuletzt bearbeitet:
Hi,
ich hab mir ein Fenster erstellt und nach dem klicken auf einen Button öffnet sich ein neues.... jedoch möchte ich das sich das dahinterliegende komplett schließt.
Ich hab es mit
Java:
  private void actionPerformed(java.awt.event.ActionEvent evt) {                                 
new Fenster1().setVisible(false);
new Fenster2().setVisible(true);
}
versucht aber das funktioniert nicht....
mit new erzeugt man neue Objekte, d.h. mit
Code:
new Fenster1().setVisible(false);
erzeugst Du eine neues Objekt der Klasse Fenster1 und belässt es unsichtbar. Außerdem verwendet man, wenn man ein Fenster echt schließen will die Methode
Code:
dispose()
 
Dann eine Grundsatz frage... wenn ich ein Fenster in den Vordergrund öffne, ist es möglich es so zu öffnen das mann im dahinterliegenden Fenster noch arbeiten kann?
Das ist sogar der Normalfall. Einzige Ausnahme ist hier ein modaler Dialog. Meinst Du mit "Fenstern" denn Dialoge?

Ebenius
 
dialoge oder frames aber ich habe es hinbekommen... ^^

Beim ersten fenster um das programm komplett zu schließen
Java:
    private void jMenuItemBeendenActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        new Fenster1().dispose();
        System.exit(0);
}

um das 2 Fenster zu öffnen
Java:
private void actionPerformed(java.awt.event.ActionEvent evt) {                                 
        dispose();
        new Fenster2().setVisible(true);
}


und um von fenster 2 in fenster 1 zurück zu kehren
Java:
  private void jMenuItemQuitActionPerformed(java.awt.event.ActionEvent evt) {                                              
        new Fenster1().setVisible(true);
        dispose();
    }

funktioniert aber genauso wie...

Java:
  private void jMenuItemQuitActionPerformed(java.awt.event.ActionEvent evt) {                                              
        dispose();
        new Fenster1().setVisible(true);
    }

warum?
 
Zuletzt bearbeitet:
weil ich sonst keine möglichkeit gefunden hab das bereits erstellte fenster zu öffnen
-> zur erklärung
es sind 2 bereits fertige fenster die ich in den menüpunkten einfach nur öffnen und schließen möchte

ich hab hier in dem 2 fenster sowieso noch ein ungelöstest problem mit gettext()
aber erstmal schau ich bei google nach =)
 
Zuletzt bearbeitet:
lol naja einen zweiten hab ich schon
ich will aus einen textfield mit gettext() den inhalt auslesen
in einen string schreiben und das in einer textarea anzeigen lassen (zeilenweise)
aber momentan hab ich noch keine ahnung wie ich das genau umsetze ^^
ich hoffe google hilft mir =)
 
lol naja einen zweiten hab ich schon
ich will aus einen textfield mit gettext() den inhalt auslesen
in einen string schreiben und das in einer textarea anzeigen lassen (zeilenweise)
aber momentan hab ich noch keine ahnung wie ich das genau umsetze ^^
ich hoffe google hilft mir =)

genau so wie beschrieben!
 
ok also ich zeig euch mal was ich meine...

mein feld zum tippen:
Java:
jMessageField = new javax.swing.JTextField();

jMessageField.setMinimumSize(new java.awt.Dimension(6, 10));

jMessageField.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
        jMessageFieldActionPerformed(evt);
    }
});

Java:
    private void jMessageFieldActionPerformed(java.awt.event.ActionEvent evt) {
        string message = jMessageField().gettext();
    }

hier bekomme ich den fehler "cannot find symbol" ?!

man muss dazu sagen ich arbeite mit netbeans...
ich weiss noch nicht wie man in netbeans den automatisch erstellen code eines events verändern kann denn...
"private void" kann eigenlich schonmal nicht sein, da ya ein string zurück gegeben werden muss. ich weiss aber nicht wie ich das in netbeans abändere...
und wenn ich mich nicht ihre kommt der cannot find symbol fehler daher das es private ist, anstatt public oder?
 
Muss heißen:
Java:
String message = jMessageField().getText();
damit kannst Du aber immer noch nicht viel anfangen, da die Variable message nur innerhalb der Methode private void jMessageFieldActionPerformed(java.awt.event.ActionEvent evt) bekannt ist.

P.S. bin der Meinung, dass man diese blöden GUI-Builder in den Wind schiessen sollte (;-)), da sie u.a. Anfänger dazu verleiten eine Oberfläche zusammen zu klicken, ohne dass diese wirklich Ahnung vom eigentlichen Programmieren in Java haben.
 
Zuletzt bearbeitet:
ich verstehe schon was da gemacht wird.
bin kein programmier anfänger sondern java anfänger ^^
nur weiss ich halt öfter nciht genau was genau für was da ist bzw macht...
aber dafür kann man ya alles nachsehen welche methode was genau macht...
deshalb sag ich ya de kram muss public sein aber ich hab ka wie ich da umstelle...
der gui builder bei netbeans ins nich wirklich komfortabel...

PS immernoch das gleihe problem

[..]..mychat\ChatWindow.java:220: cannot find symbol
symbol : method jMessageField()
location: class mychat.ChatWindow
String message = jMessageField().gettext();
 
Zuletzt bearbeitet:
ich werd immer verwirrter...
cannot find symbol
symbol : method gettext()
location: class javax.swing.JTextField
String message = jMessageField.gettext();

das interne hin und her welche methode da zu was gehört und auf was zugreifen kann oder auch nciht verwirrt mich in java ziemlich...

EDIT:
ok LOL

es MUSS heißen:
String message = jMessageField.getText();


...

jetzt muss ich nurn och heraussfinden wie man den kram public bekommt das ich drauf
zugreifen kann argh...
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.

Zurück
Oben