Один и тот же фрагмент кода Java дает разные результаты на Ubuntu 18.04 и MacOS X.
Привет, я читаю книгу Head First Java, английская версия.В главе 12, посвященной Swing, приведен пример, который называется SimpleAnimation на стр. 385. В исходном коде программа должна нарисовать траекторию движения круга.Я добился этого результата, используя машину Ubuntu 18.04 с Java 8 (не помнил конкретную версию).Однако на компьютере MacOS X с Java 8.0_201 программа автоматически очищает траекторию движения круга.Кто-нибудь знает, почему это произошло?
import javax.swing.*;
import java.awt.*;
public class SimpleAnimation {
int x = 70;
int y = 70;
public static void main(String[] args) {
SimpleAnimation gui = new SimpleAnimation();
gui.go();
}
public void go() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyDrawPanel drawPanel = new MyDrawPanel();
frame.getContentPane().add(drawPanel);
frame.setSize(300, 300);
frame.setVisible(true);
for (int i = 0; i < 130; i++) {
x++;
y++;
//System.out.println("VALUE OF X AND Y : " +x +" " +y);
drawPanel.repaint();
try {
Thread.sleep(50);
} catch (Exception ex) {
}
}
}// close go() method
class MyDrawPanel extends JPanel {
public void paintComponent(Graphics g) {
g.setColor(Color.green);
g.fillOval(x, y, 40, 40);
}
} // close inner class
} // close outer class
Ожидаемое: анимация показывает траекторию движения круга.(Достигнуто в Ubuntu 18.04) Фактически: дорожка стирается автоматически.(Появилось на MacOS X)