Verzögerung bei Änderungen der Anzeige abwarten

J

JonasT

Gast
Hallo,

Ich habe ein Problem mit folgendem Code
Java:
button.setVisible(false);
Thread.sleep(2000);
System.out.println(1);
//Irgendwas machen
Thread.sleep(2000);
System.out.println(2);
//Irgendwas machen
Thread.sleep(2000);
System.out.println(3);

Wenn ich dies ausführe bleibt der Button sichtbar bis auf der Console 3 ausgegeben wurde. Erst dann wird der Button unsichtbar. Zwischenzeitlich möchte ich aber Aufgaben ausführen für die der Button unbedingt bereits von der Anzeige verschwunden sein muss.

Wie kann ich mit der nächsten Programmzeile warten, bis der Button tatsächlich unsichtbar ist?
 

Wildcard

Top Contributor
Dein sleep legt den Event Dispatch Thread von Swing lahm. Dieser Thread ist fürs Zeichnen und die Benutzereingaben zuständig. Solange er schläft kann also weder etwas angezeigt, noch eine Eingabe verarbeitet werden. Man legt den Event Dispatch Thread niemals schlafen, die Oberfläche muss immer 'responsive' bleiben.
Was möchtest du erreichen?
 
J

JonasT

Gast
Mein Ziel ist, dass das Programm nachdem der Button unsichtbar ist 2 Sec. wartet bevor die nächste Zeile ausgeführt wird.
 

Michael...

Top Contributor
Die println Ausgaben und die Thread.sleep(...) - falls letztere überhaupt notwendig sind - müssen in einen eigenen Thread ausgelagert werden.
In etwa so wie hier in Zeile 26 bis 37
Java:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class HideAndWaitDemo extends JFrame {
	private JButton button1, button2;

	private JLabel label;

	public HideAndWaitDemo() {
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setBounds(0, 0, 500, 200);
		this.setLocationRelativeTo(null);
		this.getContentPane().setLayout(new GridLayout(3, 1));
		this.getContentPane().add(button1 = new JButton("Blub"));
		this.getContentPane().add(button2 = new JButton("Hide"));
		this.getContentPane().add(label = new JLabel("", JLabel.CENTER));

		button2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				if (button1.isVisible()) {
					button1.setVisible(false);
					label.setText("");
					new Thread(new Runnable() {
						public void run() {
							try {
								Thread.sleep(2000);
							} catch (InterruptedException e) {
								e.printStackTrace();
							}
							label.setText("The first button disappeared about 2 sec ago.");
						}
					}).start();
					new Thread(new Runnable() {
						public void run() {
							try {
								Thread.sleep(5000);
							} catch (InterruptedException e) {
								e.printStackTrace();
							}
							label.setText("...and now he's back again!");
							button1.setVisible(true);
						}
					}).start();
				}
			}
		});
	}

	public static void main(String[] args) {
		new HideAndWaitDemo().setVisible(true);
	}
}
 

Marco13

Top Contributor
Wobei
label.setText("...and now he's back again!");
button1.setVisible(true);
eigentlich mit den SwingUtilities wieder auf den EDT gelegt werden müßte...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
S Verzögerung zwischen Cursorbewegung einbauen AWT, Swing, JavaFX & SWT 1
E Swing Verzögerung beim Hinzufügen / Ändern von Swingkomponenten AWT, Swing, JavaFX & SWT 3
F Verzögerung bei der ersten Anzeige AWT, Swing, JavaFX & SWT 6
hdi Problem mit ToolTip: Aussehen/Verzögerung AWT, Swing, JavaFX & SWT 7
P Swing Verzögerung von repaint() umgehen AWT, Swing, JavaFX & SWT 15
W Verzögerung à la Tooltip bei mouseEntered AWT, Swing, JavaFX & SWT 19
P JavaFX Änderungen am Datenmodell visuell nicht sichtbar AWT, Swing, JavaFX & SWT 3
G JTextField Änderungen überprüfen AWT, Swing, JavaFX & SWT 4
W Swing JPanel nur einmal nach mehreren Änderungen neu zeichnen AWT, Swing, JavaFX & SWT 1
D Swing JTextComponent markieren bei Änderungen AWT, Swing, JavaFX & SWT 5
S JTable übernimmt Änderungen nicht AWT, Swing, JavaFX & SWT 2
G JavaFX TableView - Änderungen werden nicht übernommen. AWT, Swing, JavaFX & SWT 3
S Swing Auf Änderungen eines Models in der View einer JTable reagieren AWT, Swing, JavaFX & SWT 1
X Swing GUI-Änderungen mit invokeLater AWT, Swing, JavaFX & SWT 4
B Row und Cell Änderungen feststellen AWT, Swing, JavaFX & SWT 3
D Änderungen einer Card des CardLayouts zur Laufzeit AWT, Swing, JavaFX & SWT 6
M Swing Änderungen eines TextFelds und JOptionPane AWT, Swing, JavaFX & SWT 5
J JTable DefaultTableModel - Änderungen feststellen AWT, Swing, JavaFX & SWT 8
C Übernahme von Änderungen in einer JTable AWT, Swing, JavaFX & SWT 7
R Swing 2 jTables -2 Models - 1 Datenklasse: Änderungen AWT, Swing, JavaFX & SWT 11
M In Jlist auf Änderungen von mehreren JLabels reagieren AWT, Swing, JavaFX & SWT 3
Pithecanthropus [gelöst ]ActionListener soll nur Änderungen "bemerken" AWT, Swing, JavaFX & SWT 2
B Keine Änderungen an JLabel durch Array möglich AWT, Swing, JavaFX & SWT 12
U Beste Möglichkeit JTable-Änderungen in DB zu schreiben? AWT, Swing, JavaFX & SWT 14
S Textfeld soll auf Änderungen von nutzer und program reagiern AWT, Swing, JavaFX & SWT 3
P Änderungen in xml datei speichern AWT, Swing, JavaFX & SWT 7
A JTable Änderungen anzeigen (DefaultTableModel) AWT, Swing, JavaFX & SWT 5
T JTable Änderungen AWT, Swing, JavaFX & SWT 2
M Änderungen an JPanel nicht sichtbar AWT, Swing, JavaFX & SWT 8
S Swing: Änderungen in JLabel oder JTextField sofort anzeigen AWT, Swing, JavaFX & SWT 3
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 4
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
S AffineTranformation Bilder verschwinden von Anzeige bei Pan, Zoom AWT, Swing, JavaFX & SWT 6
kodela Swing Anzeige des Warten-Cursors AWT, Swing, JavaFX & SWT 8
kodela Verspätete Anzeige in Textfeldern AWT, Swing, JavaFX & SWT 8
F BorderLayout Hilfe bei Anzeige AWT, Swing, JavaFX & SWT 2
L Java FX Keine Anzeige Im Tableview AWT, Swing, JavaFX & SWT 4
F JScrollPane anzeige AWT, Swing, JavaFX & SWT 7
F Design-Anzeige im Windowbuilder AWT, Swing, JavaFX & SWT 3
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
D JavaFX Control zur Anzeige von eBooks AWT, Swing, JavaFX & SWT 5
javampir Swing Anzeige der FileFilter im JFileChooser AWT, Swing, JavaFX & SWT 0
T Probleme mit Anzeige von Elementen im JPanel AWT, Swing, JavaFX & SWT 1
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
G JScrollPane bricht am Ende der Anzeige nicht um AWT, Swing, JavaFX & SWT 2
V JWindow: Falsche Anzeige auf Ubuntu AWT, Swing, JavaFX & SWT 2
N JDialog als Progress-Anzeige AWT, Swing, JavaFX & SWT 6
M AWT Gui anzeige Probes - Elemente erscheinen nicht regelmäßig AWT, Swing, JavaFX & SWT 2
A JFreeChart BarChart invertierte anzeige oder werte bereich von-bis AWT, Swing, JavaFX & SWT 4
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
P Swing Problem mit der Anzeige AWT, Swing, JavaFX & SWT 12
B SWT TreeViewer dynamische Anzeige von Icons AWT, Swing, JavaFX & SWT 3
M Anzeige updatet sich erst am Ende des Programms AWT, Swing, JavaFX & SWT 3
J JList, Anzeige aktualisieren AWT, Swing, JavaFX & SWT 7
J Kleines Anzeige Problem(nur blanker Frame) AWT, Swing, JavaFX & SWT 22
A Swing JFileChooser - Anzeige in Echtzeit filtern AWT, Swing, JavaFX & SWT 10
N Swing JTextPane zur Anzeige von HTML AWT, Swing, JavaFX & SWT 2
A Swing Anzeige Text in JScrollpane AWT, Swing, JavaFX & SWT 8
M TabbpedPane Anzeige aktualisieren AWT, Swing, JavaFX & SWT 6
S Anzeige von Beschleunigungswerten AWT, Swing, JavaFX & SWT 2
S Anzeige eines JWindows AWT, Swing, JavaFX & SWT 3
N jcomboBox anderer Wert als Anzeige AWT, Swing, JavaFX & SWT 6
B Swing Java crashed nach Anzeige JOptionePane AWT, Swing, JavaFX & SWT 20
S Probleme mit Anzeige von JComboBox AWT, Swing, JavaFX & SWT 2
J Anzeige AWT, Swing, JavaFX & SWT 5
timbeau Gitter in Sudoko-Anzeige AWT, Swing, JavaFX & SWT 9
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
D Swing Anzeige während eines Ladevorganges AWT, Swing, JavaFX & SWT 6
N Eigener Grafik Editor mit fehlerhafter Anzeige AWT, Swing, JavaFX & SWT 4
C SWT SWT Browser anzeige bug AWT, Swing, JavaFX & SWT 3
A Einschreiten vor anzeige eines Frames AWT, Swing, JavaFX & SWT 26
P JTree - Explorer mit nur eingeschränkter Anzeige AWT, Swing, JavaFX & SWT 17
T SWT Keine Anzeige der Widgets nach Comboauswahl AWT, Swing, JavaFX & SWT 2
M.F.G. Fehler bei der Anzeige Grafischer Elemente AWT, Swing, JavaFX & SWT 13
B SWT Textdatei Lesen und Anzeige in View - Zeichensatzproblem AWT, Swing, JavaFX & SWT 4
hdi JTree: interne Daten OK, Anzeige schwarze Magie AWT, Swing, JavaFX & SWT 2
R Anzeige der Aktivität AWT, Swing, JavaFX & SWT 3
S Splash Screen / "Loading" Anzeige im Programm AWT, Swing, JavaFX & SWT 27
S JTree - Anzeige des Knotennamen ändern AWT, Swing, JavaFX & SWT 2
B JList Anzeige aktualisieren (Models) AWT, Swing, JavaFX & SWT 2
G Keine Anzeige des Balkens AWT, Swing, JavaFX & SWT 3
C JTable aktualisiert die Anzeige nicht AWT, Swing, JavaFX & SWT 2
G Anzeige schwierigkeiten AWT, Swing, JavaFX & SWT 3
G Problem mit Anzeige von HTML AWT, Swing, JavaFX & SWT 5
P JRE 6 -> ToolTip & mnemonic Anzeige AWT, Swing, JavaFX & SWT 4
G JComboBox - Anzeige mit Wert verknüpfen AWT, Swing, JavaFX & SWT 3
G Anzeige Problem AWT, Swing, JavaFX & SWT 4
D Anzeige eines Bildes: JPanel oder JLabel ? AWT, Swing, JavaFX & SWT 3
T dynamische anzeige? AWT, Swing, JavaFX & SWT 4
W JList Anzeige erneuern AWT, Swing, JavaFX & SWT 4
P JMenuBar und JToolBar Anzeige Probleme AWT, Swing, JavaFX & SWT 5
T JComboBox anzeige AWT, Swing, JavaFX & SWT 6
F Anzeige von JPanel AWT, Swing, JavaFX & SWT 3
M JTree und Anzeige des entsprechenden Panels AWT, Swing, JavaFX & SWT 5
K Probleme mit der Anzeige eines einzigen Nodes in einem JTree AWT, Swing, JavaFX & SWT 9
S SWT-Widgets für Anzeige-Elemente AWT, Swing, JavaFX & SWT 3
G Keine Anzeige von Grafik bei externem paintComponent-Aufruf AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben