У меня есть игра, в которой я хочу засветить компонент красным цветом, а затем вернуть ему нормальный цвет. Если я установлю его на красный, а затем верну в нормальное состояние, вспышка произойдет слишком быстро. Очевидно, я мог бы просто использовать Thread.sleep(123), но это КРАЙНЕ нежелательно, потому что это нарушает работу моего пользовательского интерфейса. Кроме того, я почти уверен, что это не то, что мне следует здесь делать.
Теперь я мог бы просто приостановить очередь, а затем использовать SwingUtilities::invokeLater. Но я хотел бы попросить здесь изучить лучшие практики.
Как лучше всего добавить паузу определенной длины между событиями Swing/AWT?
Вот пример.
import javax.swing.*;
import java.awt.*;
public class cry {
public static void main(final String[] args) {
SwingUtilities.invokeLater(cry::blah);
}
private static void blah() {
final JFrame frame = new JFrame();
frame.setTitle("ABC");
frame.setLocationByPlatform(true);
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
try {
Thread.sleep(10_000); //sleep for 10 seconds
} catch (Exception e) {
throw new RuntimeException(e);
}
frame.setTitle("XYZ");
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... eventqueue
Как приостановить выполнение на X миллисекунд в AWT EventQueue ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Matlab сообщает "исключение в потоке" awt-eventqueue-0 "java.lang.nullpointerexception"
Anonymous » » в форуме JAVA - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-