Следующая программа обновляет этикетку 4 раза в секунду, но скорость перекрашивания отстает. Кажется, это ограничено 500 мс. Я не наблюдал такого поведения в Windows.
Я попробовал с или без The Invokelater (), с созданием нового Repaintmanager и теми же результатами. Если jframe изменен, этикетка хорошо обновлена во время движения мыши. 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();
}
});
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... paint-rate
Java Swing Swing Slow X11. ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение