Wie schließen Fenster automatisch?

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo,

ich habe folgendes Problem:

Der User will die ok-Buttens beim JOptionPane nicht drücken, das Message Fenster soll sich nach 1-2 Sekunden von alleine wieder schliessen.

Geht das mit einem JOptionPane? Wenn nein wie muss ich es machen?


DANKE!!!
 

AlArenal

Top Contributor
LOL

Ich würde lieber ne Hand ans Fenster programmieren, die dem User mal ordentlich eine langt...
 
G

Gast

Gast
*seufz*

DIESE Diskussion hatte ich schon, und nachdem ich nun eine Stunde keine Lösung gefunden habe, versuche ich es (zum ersten mal) hier. Melde mich gleich an, hoffe trotzdem schon jetzt auf Hilfe.
 

Toast78

Mitglied
Mal so ins Blaue geschossen:
Die Klasse Object stellt doch eine wait-Funktion bereit, der man auch einen Timeout in Millisekunden übergeben kann. Wäre da nicht drüber was machbar?
 

dieta

Top Contributor
Nach ein bisschen API-Kramen:
Code:
JOptionPane.showConfirmDialog(meinFenster, "bla");
Thread tr1 = new Thread()
{
    public void run()
    {
        try
        {
            Thread.sleep(2000); //<-- Wartezeit in Millisekunden
            (meinFenster.getOwnedWindows())[0].dispose();
        } catch(InterruptedException ex) { }
    }
};
tr1.start();
Sollte Funktionieren.
Statt showConfirmDialog kann da auch alles andere stehen, wchtig ist nur, dass du eine instanz des Fensters, das als ParentComponent angegeben ist, hast.
Eine weitere Vorraussetzung ist, dass du mit dieserparentComponent nur diesen einen Dialog geöffnet hast.

[edit]Noch den nötigen try-catch-Block um das Thread.sleep(...) eingefügt[/edit]
 
G

Gast

Gast
Hallo dieta!

Vielen lieben Dank für Deine Mühe,

leider stolpere ich noch herum, und zwar über

(meinFenster.getOwnedWindows())[0].dispose();

Mein Internal Frame stellt kein getOwnedWindow (this.getOwnedWindow) zur Verfügung,
das einzige was ich könnte wäre ein
parent.getAllFrames()
was auch funktioniert, es schliesst nach 2 Sekunden das Internal Frame (auch nett).

Wäre sehr dankbar für eine weitere Idee :)
 

dieta

Top Contributor
Gib' vielleicht parent als owner an, dann sollte es über parent.getOwnedWindows klappen.
An sonsten: parent.getAllFrames gibt ja ein Array zurück, da kannst du ja mal einfach ausprobieren, der wievielte Index ein DIalog ist (Er sollte eigentlich der letzte sein).
 
G

Gast

Gast
Hi,

ich denke es geht nicht mit dem optionPane, habe nun drumherumgebaut, trotzdem danke!!!

Code:
final JDialog d = new JDialog();
				d.setTitle("Speicherung erfolgreich !");
				d.setSize(400,150);
				
				JLabel message_label = new JLabel(message.toString(),JLabel.CENTER);
				this.add(message_label, BorderLayout.CENTER);
				d.setVisible(true);
				
				
				Thread tr1 = new Thread()
				{
				    public void run()
				    {
				        try
				        {
				            Thread.sleep(2000); //<-- Wartezeit in Millisekunden
				            d.dispose();
				        } catch(InterruptedException ex) { }
				    }
				};
				tr1.start();
 
G

Gast

Gast
Hie dieta,

wollte das mit dem letzten Element des Arrays probieren, aber es hilft natürlich garnichts:

Das OptionPane wartet solange, bis der Okay-Button gedrückt wird, erst dann wird im Code fortgefahren (also der thread aufgerufen). Das letzte Element ist _dann_ natürlich wieder das Fenster selber :)

Was man bräuchte wäre ein thread, der gleichzeitig mit dem OptionPane beginnt. Leider weiss ich nicht wie man sowas macht.
 

L-ectron-X

Gesperrter Benutzer
Bist ja noch nicht angemeldet...

So würde die Methode aussehen, die du benötigst, wenn du das Ganze mit einem JOptionPane lösen willst/musst.
Code:
public void showTimedDialog(final long millis) {
   JOptionPane pane = new JOptionPane("Dieses Mitteilungsfenster wird automatisch in "+
      String.valueOf(millis/1000)+
      " Sekunden geschlossen.",
      JOptionPane.INFORMATION_MESSAGE);
         
   final JDialog dialog = pane.createDialog(null, "Mitteilung");
   dialog.addWindowListener(new WindowAdapter() {
      public void windowOpened(WindowEvent e) {
         try {
            Thread.sleep(millis);
            dialog.dispose();
         }
         catch(InterruptedException ie) {
            Thread.currentThread().interrupt();
         }
      }
   });
   dialog.setVisible(true);
}
 

Caramel

Neues Mitglied
Hi L-ectron-X,

hm, auch das geht nicht (kann nicht, oder ich habs nicht kapiert),
aber auch bei Deiner Lösung wartet das OptionPane (pane) solange, bis der oaky-Knopf gedrückt wird, erst dann wird versucht den Dialog zu öffnen.

Trotzdem Danke für die Mühe, bin schwer beeindruckt!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
T Fenster schließen AWT, Swing, JavaFX & SWT 4
E JavaFX JavaFX Fenster nicht schließen AWT, Swing, JavaFX & SWT 4
thet1983 offne Fenster gemeinsam schließen AWT, Swing, JavaFX & SWT 8
F JavaFX KeyListener zum Fenster öffnen/schließen AWT, Swing, JavaFX & SWT 9
M Swing Einzelne Fenster schließen AWT, Swing, JavaFX & SWT 2
M Swing ButtonListener Fenster schließen AWT, Swing, JavaFX & SWT 15
M Fenster schließen - Listener AWT, Swing, JavaFX & SWT 5
S Fremdes Fenster schließen AWT, Swing, JavaFX & SWT 2
E Fenster schließen und ein anderes öffnen AWT, Swing, JavaFX & SWT 9
X Öffnen Schließen Fenster AWT, Swing, JavaFX & SWT 4
0 Fenster schließen AWT, Swing, JavaFX & SWT 2
B AWT mehrere Fenster schließen AWT, Swing, JavaFX & SWT 8
D Fenster schließen AWT, Swing, JavaFX & SWT 7
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
2 Zusätzliches Fenster mit OK-Button schließen AWT, Swing, JavaFX & SWT 7
B Fenster schließen AWT, Swing, JavaFX & SWT 4
I Fenster schließen - Button AWT, Swing, JavaFX & SWT 13
G Swing Fenster schließen AWT, Swing, JavaFX & SWT 6
E Fenster schließen über X AWT, Swing, JavaFX & SWT 8
D aktuells fenster + letztes fenster schließen AWT, Swing, JavaFX & SWT 5
R [gelöst]Fenster schließen - trotz Endlosschleife in der Paint-Methode? AWT, Swing, JavaFX & SWT 3
A Eins von zwei offnen Fenster/Frames schließen AWT, Swing, JavaFX & SWT 2
J Fenster schließen ohne das Programm zu beenden AWT, Swing, JavaFX & SWT 3
F Programmiertes Fenster schließen AWT, Swing, JavaFX & SWT 3
P SWT Fenster schließen abfangen AWT, Swing, JavaFX & SWT 4
S Einzelne Frame Fenster schließen AWT, Swing, JavaFX & SWT 2
S Einzelne Frame Fenster schließen AWT, Swing, JavaFX & SWT 2
W JDialog ohne zum Fenster Schließen AWT, Swing, JavaFX & SWT 2
D Fenster schließen mit JButton AWT, Swing, JavaFX & SWT 2
K Fenster lässt sich nicht schließen =( AWT, Swing, JavaFX & SWT 16
B Fenster soll sich bei auf Druck auf ESC schließen AWT, Swing, JavaFX & SWT 5
G Nur ein Fenster schließen? AWT, Swing, JavaFX & SWT 3
G Fenster schließen? AWT, Swing, JavaFX & SWT 4
X Fenster schließen aber nicht beenden AWT, Swing, JavaFX & SWT 9
S Bei ESC Fenster schließen AWT, Swing, JavaFX & SWT 6
H Fenster mit dem x-Button schließen AWT, Swing, JavaFX & SWT 5
A Fenster über Menü schließen AWT, Swing, JavaFX & SWT 2
G Fenster anzeigen und schließen? AWT, Swing, JavaFX & SWT 15
G Fenster bzw. Dialog schließen AWT, Swing, JavaFX & SWT 3
S Fenster schließen?! AWT, Swing, JavaFX & SWT 5
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
S GUI Schließen Button auf der linken Seite AWT, Swing, JavaFX & SWT 2
emma_louisa JavaFX MenuBar Zweitfenster; bei Button "Abbrechen" nur das Zweitfenster schließen AWT, Swing, JavaFX & SWT 2
K Frame aus anderer Klasse schließen AWT, Swing, JavaFX & SWT 3
T JavaFX Dialog schließt ohne dass es schließen soll AWT, Swing, JavaFX & SWT 1
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
R JFrame schließen AWT, Swing, JavaFX & SWT 9
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
D JavaFX Beim Schließen (Rotes X) Code ausführen AWT, Swing, JavaFX & SWT 1
D Geöffnetes Dialogfenster schließen AWT, Swing, JavaFX & SWT 11
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
T Event Handling JDialog schließen, sobald ein neuer erzeugt wird AWT, Swing, JavaFX & SWT 3
O Neuen JFrame öffnen und alten schließen AWT, Swing, JavaFX & SWT 7
D Swing Schließen von JDialog soll auch JFrame schließen. AWT, Swing, JavaFX & SWT 4
C Programm mit Passwort schließen AWT, Swing, JavaFX & SWT 5
F Swing JDialog schließen - WindowListener bekommt dispose nicht mit AWT, Swing, JavaFX & SWT 0
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2
W SWT Dialog richtig schließen? AWT, Swing, JavaFX & SWT 0
I JFrame mit JButton schließen? AWT, Swing, JavaFX & SWT 0
U Mehrere Oberflächeninstanzen seperat schließen AWT, Swing, JavaFX & SWT 5
VfL_Freak AWT Browser öffnen und schließen via java.awt.Desktop AWT, Swing, JavaFX & SWT 4
L Event Handling windowAdapter - NullPointerException beim Schließen AWT, Swing, JavaFX & SWT 5
R SWT Wizard schließen AWT, Swing, JavaFX & SWT 2
L SWT Eingabefelder beim Schließen des Forms auslesen AWT, Swing, JavaFX & SWT 3
C Swing Wie kann ich im Programm das Menü schließen AWT, Swing, JavaFX & SWT 2
J Swing JInternalFrame schließen ändern? AWT, Swing, JavaFX & SWT 7
S JDialog per Button schließen AWT, Swing, JavaFX & SWT 2
D Neues Frame öffnen - und dazu altes schließen AWT, Swing, JavaFX & SWT 5
VfL_Freak Swing KeyListener, um einen Dialog per ESC zu schließen AWT, Swing, JavaFX & SWT 6
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
L Frame Schließen und neustarten AWT, Swing, JavaFX & SWT 4
qwerqer Swing JDialog Darstellungsprobleme - Dialog lässt sich nicht schließen AWT, Swing, JavaFX & SWT 3
Madlip SWT DateTime Widget Schließen AWT, Swing, JavaFX & SWT 4
K beim Schließen des JFrames, Methode aufrufen AWT, Swing, JavaFX & SWT 3
J Schließen über x soll zwei Prozesse beenden AWT, Swing, JavaFX & SWT 7
J Programm schließen AWT, Swing, JavaFX & SWT 4
H Anwendung schließen ohne System.exit AWT, Swing, JavaFX & SWT 5
S JPopupMenu schließen in SystemTray AWT, Swing, JavaFX & SWT 2
F Swing JFrame Methode beim Schließen aufrufen AWT, Swing, JavaFX & SWT 5
N Swing Von 2 dimensionalem Array auf JTextfield schließen und färben AWT, Swing, JavaFX & SWT 6
E JWindow bewegen, minimieren, vergrößern und schließen AWT, Swing, JavaFX & SWT 5
W Swing Event bei Schließen des Fensters AWT, Swing, JavaFX & SWT 6
S Swing JPopupMenu nicht schließen AWT, Swing, JavaFX & SWT 2
R WindowClosing Event - Schließen rückgängig machen? AWT, Swing, JavaFX & SWT 2
aze FlowLayout:Lücken "schließen" AWT, Swing, JavaFX & SWT 2
D Swing Dialog schließen verhindern bei Fehleingabe AWT, Swing, JavaFX & SWT 2
T Schließen eines JDialogs setzen den JFrame in den Hintergrund AWT, Swing, JavaFX & SWT 2
N JInternalFrame minimieren und schließen AWT, Swing, JavaFX & SWT 2
M JWindow schließen wenn Frame sich ändert AWT, Swing, JavaFX & SWT 2
DStrohma JFrame mit WindowListener schließen AWT, Swing, JavaFX & SWT 12
M Main Frame schließen und neue Klasse aufrufen? AWT, Swing, JavaFX & SWT 2
T AWT Vollbild öffnen und schließen AWT, Swing, JavaFX & SWT 3
D Swing JMenu wieder schließen lassen AWT, Swing, JavaFX & SWT 7
ModellbahnerTT Neuer JFrame schließen AWT, Swing, JavaFX & SWT 4
U Tab schließen durch Button in Panel AWT, Swing, JavaFX & SWT 7
S Frames schließen AWT, Swing, JavaFX & SWT 6
J Swing Anwendung schließen im Listener AWT, Swing, JavaFX & SWT 3
C Swing Schließen, Maximieren, Minimieren entfernen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben