Следующая программа обновляет этикетку 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