ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
1282
1282
EMPFEHLEN
-
Hallo User,
ich habe folgendes Problem. Ich möchte verhindern, das ein JFrame mehrmals nach Buttonclick geöffnet werden kann. Anbei ein Stück Programmcode. Wo liegt mein Denkfehler oder falsche Arbeitsweise? Für Eure Antworten vielen Dank!! Gruß Mika
void jButton1_mouseClicked(MouseEvent e)
{
if (e.getClickCount() == 1)
{
FrameKond f = new FrameKond();
if (!f.isShowing()) // geht nicht
{
f.setUndecorated(true);
f.setSize(dim.width, dim.height);
f..setLocation(0, 0);
f..setVisible(true);
}
}
}
-
Hallo MikaM,
benutze doch bitte für geposteten Code die [.JAVA][./Java] Tags (ohne Punkte) um den Code leserlicher zu gestalten.
Nun zu deinem Problem. Deine Idee ist schon richtig. Das Problem ist allerdings dieser Zeile:
Du erstellst bei jedem Methodenaufruf ein neues Fenster, deine nachfolgende Abfrage kann also nu "true" zurückliefern. Du könntest dein Fenster global deklarieren und beim Schließen des Fensters die "dispose()"-Methode aufrufen.Code java:1
FrameKond f = new FrameKond();
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
FrameKond f = new FrameKond(); void jButton1_mouseClicked(MouseEvent e) { if (e.getClickCount() == 1) { if (!f.isShowing()) // geht nicht { f.setUndecorated(true); f.setSize(dim.width, dim.height); f..setLocation(0, 0); f..setVisible(true); } } }
Und dann bei deinem Fenster mit einem WindowListener (ist allerdings dir überlassen) einfahc die Methode "dispose()" der Klasse JFrame aufrufen um das Fenster zu "verstecken".Handlanger des Dr. Ex1tus
Ich kenne Matzes dunkles Geheimnis ! oO
o
L_/
OL
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat.
Hallo Nuray!
-
Hallo Hammet,
erstmal Vielen Dank. Das mit der Ansicht des Codes war mir bewußt, ich weiß nur nicht wo ich den Quellcode diesbezüglich hinterlege, damit er gut lesbar ist.
Zum Problem. Soweit ist mir das auch klar, das das Frame immer wieder nach Click neu angelegt wird. Das dispose() habe ich auch drinnen. Aber, ich kann es ja nicht verhindern, das der Bearbeiter das Fenster offen läßt und die selbe Schaltfläche noch einmal anklickt. Er kann also beliebig viele Fenster mit gleicher Funktionalität öffnen und gerade das will ich verhindern. Mit JDialog würde es zwar gehen, aber ich suchte nach einer Möglichkeit mit JFrame. Ich hoffe Du hast eine Idee oder das geht prinzipiell nicht. Gruß MikaM
-
04.07.09 17:29 #4
Lösung von hammet:
Zusatz meinerseits:Nun zu deinem Problem. Deine Idee ist schon richtig. Das Problem ist allerdings dieser Zeile:
Du erstellst bei jedem Methodenaufruf ein neues Fenster, deine nachfolgende Abfrage kann also nu "true" zurückliefern. Du könntest dein Fenster global deklarieren und beim Schließen des Fensters die "dispose()"-Methode aufrufen.Code java:1
FrameKond f = new FrameKond();
Du erstellst immer eine neue Referenz, sodass das Ergebnis in der if-Abfrage immer das selbe ist. Anstatt einer lokalen Variable für das Fenster solltest du es mal mit einer globalen Variable versuchen oder du machst aus der Klasse FrameKond nen Singleton, dann wäre das damit auch getan.
-
Ich glaub du solltest meinen Post nochmals lesen.
1. Habe ich geschrieben wie man den Code leserlich macht (mit den [.JAVA]-Tags).
2. Habe ich auch eine Lösung zu deinem Problem gepostet (sogar den Quellcode dazu).
3. Wie Akeshihiro aiuch sagte, könnte dir ein Singleton ebenfalls helfen:
http://www.theserverside.de/singleton-pattern-in-java/Handlanger des Dr. Ex1tus
Ich kenne Matzes dunkles Geheimnis ! oO
o
L_/
OL
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat.
Hallo Nuray!
-
Hallo,
das mit der Ansicht des Quellcodes hatte ich falsch verstanden, Hammet. Ich dachte du beziehst dich auf meine unsaubere Darstellung. Hatte ich falsch verstanden. Ist mir jetzt klar. Das mit dem Singleton werde ich auch ausprobieren. Danke euch beiden. Gruß MikaM
Ähnliche Themen
-
Swing Fenster per Button schließen, NICHT das Programm beenden
Von Markus im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 23.06.09, 12:53 -
Swing Fenster funktioniert nicht wenn Firefox läuft
Von raptot im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 30.08.08, 01:15 -
Fenster öffnen geht nicht
Von PhoenixDH im Forum Javascript & AjaxAntworten: 11Letzter Beitrag: 21.11.05, 19:15 -
Ein Formular mehrmals öffnen
Von ShadowFire im Forum Delphi, Kylix, PascalAntworten: 1Letzter Beitrag: 31.01.05, 11:24 -
Formular mehrmals öffnen
Von ollek81 im Forum Visual Basic 6.0Antworten: 6Letzter Beitrag: 23.05.04, 23:33





Zitieren
Login




