Java Swing Swing Slow X11.JAVA

Программисты JAVA общаются здесь
Anonymous
Java Swing Swing Slow X11.

Сообщение Anonymous »

Следующая программа обновляет этикетку 4 раза в секунду, но скорость перекрашивания отстает. Это кажется ограниченным ~ 500 мс. Я имею в виду, что вы видите 1,3,5,7 ... и т. Д. Время от времени, он обновляется с правильной скоростью. Метод обновления < /code> хорошо вызывается при 4 Гц.
Я не наблюдал этого поведения в Windows. Если jframe изменен, этикетка хорошо обновлена ​​во время движения мыши. Lts < /li>
java version "17.0.12" 2024-07-16 lts < /li>
< /ul>

import javax.swing.*;

public class Main extends JFrame {

int count;
JLabel lab;

public Main() {
count = 0;
lab = new JLabel(" ");
lab.setHorizontalAlignment(JLabel.CENTER);
setContentPane(lab);
pack();
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
new Thread(new Runnable() {
@Override
public void run() {
while(true) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
refreshLabel();
}
});
try {
Thread.sleep(250);
} catch (InterruptedException e) {
}
}
}
}).start();
}

public void refreshLabel() {
count++;
lab.setText(Integer.toString(count));
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Main();
}
});
}

}
< /code>
$ java -version
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)
$ uname -a
Linux pastis 6.8.0-55-generic #57-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 12 23:42:21 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
$ echo $XDG_SESSION_TYPE
x11


Подробнее здесь: https://stackoverflow.com/questions/795 ... paint-rate

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