Java Swing InvokeLater не перерисовывается сразуJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java Swing InvokeLater не перерисовывается сразу

Сообщение Anonymous »

Я работаю над игрой. При попытке визуализировать использование игрового цикла в «основном» потоке метод PaintComponent вызывается редко. Я читал о многих других подобных проблемах, но, похоже, ни одна из них мне не помогла. Возможно, я до сих пор не все правильно понимаю.
Я знаю, что это все еще проблема с EDT, поскольку когда я перемещаю мышь или нажимаю клавишу, игра отображается плавно.
Спасибо!
Вот мой сокращенный код:
public class Game implements Runnable {

private GamePanel gamePanel;
private Thread gameThread;
private final int FPS_SET = 120;

public Game() {
gamePanel = new GamePanel();
gamePanel.requestFocus();

gameThread = new Thread(this);
gameThread.start();
}

@Override
public void run() {

double timePerFrame = 1000000000.0 / FPS_SET ;
long lastFrame = System.nanoTime();
long now = lastFrame;

while(true) {

now = System.nanoTime();
if (now - lastFrame >= timePerFrame) {
// Updates Scenery
_reDraw();
lastFrame = now;
}

}
}

private void _reDraw() {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
gamePanel.repaint();
}
});
}

}

public class GamePanel extends JPanel {
// ...
public void paintComponent(Graphics g) {
// draw
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... mmediately
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Эксперимент с графическим интерфейсом Swing: проблема с пробелами в панелях с использованием SwingUtilities.invokeLater(
    Anonymous » » в форуме JAVA
    0 Ответы
    93 Просмотры
    Последнее сообщение Anonymous
  • Почему мой пользовательский компонент Swing перерисовывается быстрее, когда я перемещаю мышь?
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Метод SwingUtility.invokelater () в программе свинга Java
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Java Swing Swing Slow X11.
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Java Swing Swing Slow X11.
    Anonymous » » в форуме JAVA
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»