Fenster nur für 5 sek. anzeigen?

Status
Nicht offen für weitere Antworten.

Bluefire

Mitglied
Hi,

Ich möchste den Befehl:
JOptionPane.showInputDialog ("//irgendein Text");
nur für 5 Sekunden anzeigen lassen; danach soll sich das fenster schließen und einfach im Quelltext weitergemacht werden...

(Hab jetzt schon bisschen hier gesucht: Hab aber nur gefunden wie man Zeit misst; Bisschen probiert; aber meine Idee, es irgendwie mit einer while-Schleife hinzukriegen, gingen leider daneben:oops:)

Also wie kann ich ein Fenster nur für 5 sek. anzeigen lassen?

mfg
Bluefire
 

Schandro

Top Contributor
schau dir mal System.sleep() an, danach einfach ein dispose(), setVisible(false) oder was auch immer du willst...
Das wäre richtig, wenn er nen JDialog benutzen würde. Er versuchts aber mit JOptionPane.show...
Auf die Dinger hat man imho keinen Einfluss.

@TO: Schreib dir deinen eigenen modalen JDialog.
 

André Uhres

Top Contributor
was ist ein "modaler JDialog"?
Wenn ein modaler Dialog sichtbar ist, blockiert er die Benutzereingaben bei allen anderen Fenstern im Programm. JOptionPane erzeugt JDialogs, die modal sind.
Gibt es nicht eine Möglichkeit, dass Fenster (, dass ich mit JOptionPane.showInputDialog()) nur für 5 sek zu öffnen?
Versuch's mal so:
Java:
JTextField inputField = new JTextField("Test");
JOptionPane pane = new JOptionPane(inputField, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
final JDialog d = pane.createDialog("OK?");
timer = new Timer(5000, new ActionListener() {
    public void actionPerformed(final ActionEvent e) {
        timer.stop();
        d.setVisible(false);
    }
});
timer.start();
d.setVisible(true);
timer.stop();
if(pane.getValue() instanceof Integer){
     if(((Integer)pane.getValue()) == JOptionPane.OK_OPTION){
         System.out.println("OK");
     }else{
         System.out.println("Cancel");
     }
}else{
    if(pane.getValue() != null){
        System.out.println("Timeout");
    }else{
        System.out.println("Closed");
    }
}
System.out.println("Value = " + inputField.getText());
 
Zuletzt bearbeitet:

Bluefire

Mitglied
Hi,

erst mal danke an alle, die mir geantwortet haben ;)

@ André Uhres: Hab deinen Vorschlag mal kopiert; Aber alle "timer" waren bei mir jetzt noch rot unterstrichen: Also hab ich einen Befehl so umgeändert :
Timer timer = new Timer(5000, new ActionListener()


Trotzdem ist noch das "timer" hier unterstrichen:

public void actionPerformed(final ActionEvent e) {
timer.stop();
d.setVisible(false);

mfg
Bluefire
 

Schandro

Top Contributor
"timer" war im Originalcode eine Membervariable, was aber nicht direkt im Code dabeistand. Deswegen brauchtest du timer nicht als final deklarieren. Jetzt musst du es aber, weil du es zu ner lokalen Variable gemacht hast:
Java:
final Timer timer = new Timer(5000, new ActionListener()


Ansonsten: Bitte bei solchen Fehlern IMMER die Fehlermeldung mit dazuposten. Wenn du den Mauszeiger über timer hältst, wird sie angezeigt und du kannst sie dir rauskopieren. Ansonsten gilt: Man sollte IMHO ganz am Anfang noch keine IDE benutzen sondern erstmal direkt z.b. mit der cmd (bei Windows) seine im Texteditor geschriebenen Java Quellcodes compilen und starten können.
 

Bluefire

Mitglied
Hi,
hab da jetzt noch "final" vorgeschrieben; ist aber immernoch unterstrichen; da steht als Fehlerweldung:
"The local variable timer may not hava been initialized"

So und hier (mein bisheriger) Quelltext:
Java:
{
		JTextField inputField = new JTextField("Test");
		JOptionPane pane = new JOptionPane(inputField, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
		final JDialog d = pane.createDialog("OK?");
		final Timer timer = new Timer(5000, new ActionListener()
		{
		    public void actionPerformed(final ActionEvent e) 
		    {
		        timer.stop(); //dieses timer ist unterstrichen
		        d.setVisible(false);
		    }
		});
		timer.start();
		d.setVisible(true);
		timer.stop();
		if(pane.getValue() instanceof Integer){
		     if(((Integer)pane.getValue()) == JOptionPane.OK_OPTION){
		         System.out.println("OK");
		     }else{
		         System.out.println("Cancel");
		     }
		}else{
		    if(pane.getValue() != null){
		        System.out.println("Timeout");
		    }else{
		        System.out.println("Closed");
		    }
		}
		System.out.println("Value = " + inputField.getText());
	

	}

mfg
Bluefire
 

Bluefire

Mitglied
Hi,
hab ich; mein Quelltext sieht jetzt so aus:
Java:
{
		JTextField inputField = new JTextField("Test");
		JOptionPane pane = new JOptionPane(inputField, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
		final JDialog d = pane.createDialog("OK?");
		timer = null; //jetzt ist dieses timer unterstrichen :(
		final Timer timer = new Timer(5000, new ActionListener()
		{
		    public void actionPerformed(final ActionEvent e) 
		    {
		        timer.stop();
		        d.setVisible(false);
		    }
		});
		timer.start();
		d.setVisible(true);
		timer.stop();
		if(pane.getValue() instanceof Integer){
		     if(((Integer)pane.getValue()) == JOptionPane.OK_OPTION){
		         System.out.println("OK");
		     }else{
		         System.out.println("Cancel");
		     }
		}else{
		    if(pane.getValue() != null){
		        System.out.println("Timeout");
		    }else{
		        System.out.println("Closed");
		    }
		}
		System.out.println("Value = " + inputField.getText());
	

	}

und als Fehlermeldung gibt's:
"timer cannot be resolved"

mfg
Bluefire
 
Zuletzt bearbeitet:

Schandro

Top Contributor
Mach timer zu ner Membervariable. Hab vergessen das man den Compiler in so einem Fall nicht austricksen kann, weil er in diesem Fall sinnlos intelligent ist.

Aber:
Da du anscheinden so gut wie keine Ahnung von Java hast ("0" statt "null" geschrieben usw..):
Vergiss den Code da oben. Es bringt nix. Man MUSS ne Programmiersprache von Anfang an lernen, anders gehts net. Es gibt einige gute kostenlose E-Books, z.b. "Java ist auch eine Insel" oder "Das Java Handbuch", les dir mal eins davon durch... (sind jeweils nur über 1000 Seiten)...
 

Bluefire

Mitglied
Ja, stimmt, ich hab "0" statt "null" geschrieben. Das liegt aber aber daran, dass ich sonst immer Sachen schreibe wie, "int Nr = 0"...(und dachte es ist hier auch so;))

Und ich hab auch nicht den absoluten Durchblick, denn es fängt ja jeder mal klein an, oder ist dir dein Wissen einfach so zugefallen?
Ich les übrigens auch ein Buch...
 

Schandro

Top Contributor
Alles klar, war nur ne Vermutung von mir. egal.

Aufjedenfall ist 0 was anderes als null und bei Variablennamen sollte man den ersten Buchstaben kleinschreiben (nr statt Nr).

Funktioniert den der Code jetzt?
 

Bluefire

Mitglied
kein Problem;)

nee, der Code geht immer noch nicht:
Da steht jetzt immer noch als Fehler: "timer cannot be resolved"
Kann es sein, dass ich noch irgendwas importieren muss, weil so konnte ich die vergangenen Fehler (mit diesem Quelltext) auch lösen?

Code hab ich jetzt oben umgeändert (also der Quelltext von mir da oben, ist immer noch der aktuelle)

P.S.: Danke für den Tipp mir den Variablennamen;)
 

Schandro

Top Contributor
[JAVA=2]import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.Timer;

public class TestClass{


private Timer timer;


public void showDialog(){
JTextField inputField = new JTextField("Test");
JOptionPane pane = new JOptionPane(inputField,JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
final JDialog d = pane.createDialog("OK?");
timer = new Timer(5000, new ActionListener() {
public void actionPerformed(final ActionEvent e) {
timer.stop();
d.setVisible(false);
}
});
timer.start();
d.setVisible(true);
timer.stop();
if (pane.getValue() instanceof Integer) {
if (((Integer) pane.getValue()) == JOptionPane.OK_OPTION) {
System.out.println("OK");
} else {
System.out.println("Cancel");
}
} else {
if (pane.getValue() != null) {
System.out.println("Timeout");
} else {
System.out.println("Closed");
}
}
System.out.println("Value = " + inputField.getText());
}

}[/code]
Natürlich fehlt hier noch ein Aufrufer der Methode bzw. ne main-Methode...
 

Leroy42

Top Contributor
Richtig! :D

Aber schon ein bischen nervig, daß der
Compiler schreibt: "The local variable timer may not have been initialized"
obwohl die Variable innerhalb ihrer Initialisierung selbst referenziert wird!

:shock:
;(
 

Landei

Top Contributor
Geht es nicht auch so, und zwar ohne Warnung?
Java:
        timer = new Timer(5000, new ActionListener() {
            public void actionPerformed(final ActionEvent e) {
                stop();
                d.setVisible(false);
            }
        });
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Welcher Layout Manager-für so ein Fenster? Java Basics - Anfänger-Themen 5
G Fenster für 2tes Fenster sperren! Java Basics - Anfänger-Themen 2
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
J Überprüfen ob ein Fenster offen ist? Java Basics - Anfänger-Themen 8
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
celta_vigo Konsolen-Fenster ist weg Java Basics - Anfänger-Themen 5
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
A Eclipse-Fenster starten statt Konsoleausgabe Java Basics - Anfänger-Themen 2
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
O Fenster programmieren Java Basics - Anfänger-Themen 2
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
A Fenster programmieren Java Basics - Anfänger-Themen 1
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
J Best Practice DOS Fenster mit Befehlszeile (Lösung) Java Basics - Anfänger-Themen 2
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
das_leon Gesamtes Programm in einem Fenster Java Basics - Anfänger-Themen 1
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
W Es wird erst gezeichnet, wenn ich das Fenster vergrößere? Java Basics - Anfänger-Themen 20
K Interface Fenster mit 3 ComboBoxen und 1 Button Java Basics - Anfänger-Themen 13
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
I Fenster A soll Fenster B schliessen Java Basics - Anfänger-Themen 5
D Java Fenster blockiert ? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A Popup-Fenster Java Basics - Anfänger-Themen 1
L Fenster auf Knopfdruck Java Basics - Anfänger-Themen 3
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
O Finally beim Fenster schliessen Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
P Eigenes Fenster erstellen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
J Extra Fenster (Frame) Java Basics - Anfänger-Themen 20
llabusch Fenster per Button verschieben Java Basics - Anfänger-Themen 5
llabusch Fenster um x Pixel verschieben Java Basics - Anfänger-Themen 4
P Window Builder Reiter im Fenster erstellen Java Basics - Anfänger-Themen 7
S Java Fenster Java Basics - Anfänger-Themen 2
D (zwei) Fenster mit unterschiedlicher Befüllung Java Basics - Anfänger-Themen 11
A JAVA Fenster in ein PDF Konvertieren Java Basics - Anfänger-Themen 1
A Erkennung eines Button im aktiven Fenster Java Basics - Anfänger-Themen 2
B Variable im Fenster anzeigen lassen? Java Basics - Anfänger-Themen 2
S Fenster ist zu groß Java Basics - Anfänger-Themen 8
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
J Button nimmt das komplette Fenster ein?! Java Basics - Anfänger-Themen 5
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
Athena Schlichtes Fenster mit Windowskomponenten Java Basics - Anfänger-Themen 3
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
A Login Fenster Java Basics - Anfänger-Themen 3
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
Z GUI-Fenster leeren Java Basics - Anfänger-Themen 5
M Erste Schritte Probleme mit Fenster Schließen Java Basics - Anfänger-Themen 6
J ordentliche Fenster Java Basics - Anfänger-Themen 17
J Problem beim Fenster Java Basics - Anfänger-Themen 4
Z Login Fenster Java Basics - Anfänger-Themen 7
K Aus JFrame-Fenster SuM-Fenster öffnen geht nicht! Java Basics - Anfänger-Themen 8
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
O Größeres Fenster als angegeben?! Java Basics - Anfänger-Themen 2
J Eltern-Fenster ermitteln Java Basics - Anfänger-Themen 2
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
V Fenster wird nicht mittig platziert Java Basics - Anfänger-Themen 3
P gui fenster nur einmal aufrufen Java Basics - Anfänger-Themen 5
P Im Fenster bleiben (swing) Java Basics - Anfänger-Themen 16
J Werte ins neue Fenster übertragen Java Basics - Anfänger-Themen 6
S Fenster richtig schließen Java Basics - Anfänger-Themen 8
M Einfacher Fenster-Ablauf Java Basics - Anfänger-Themen 5
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
SexyPenny90 Wie erstelle ich ein extra Fenster mit einer Meldung Java Basics - Anfänger-Themen 2
S nur neu geöffnetes Fenster schließen Java Basics - Anfänger-Themen 3
J Willkürlich geöffnetes Fenster/Dialog anspielen? Java Basics - Anfänger-Themen 3
M OOP GUI - Fenster vererben? Java Basics - Anfänger-Themen 9
T fenster schliesen und mouse events in einer nicht abstrakten klasse Java Basics - Anfänger-Themen 6
M Erste Schritte Fenster Und VB Funktionen Java Basics - Anfänger-Themen 8
G Scrollbares Fenster bei mehr als 5 Objekten Java Basics - Anfänger-Themen 4
L Fenster winzig klein durch GridBagLayout Java Basics - Anfänger-Themen 3
H Java-Fenster ohne Inhalt Java Basics - Anfänger-Themen 2
T Windows Fenster Schließen Java Basics - Anfänger-Themen 4
E JFrame Fenster bewegen Java Basics - Anfänger-Themen 8
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
E javaw öffnet trotzdem ein DOS Fenster Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben