【发布时间】:2018-04-19 08:29:32
【问题描述】:
我在课堂上获得了一些演示代码,这些代码在实验室的 Windows 计算机上运行,但在我的 2010 MacBook(使用 Sierra)上运行方式不同。
进行Java Graphics Not Displaying In OS X 中建议的更改并没有解决我的问题。我也尝试过调整窗口大小,这会稍微改变动画——调整大小后它会间歇性地弹出。如果我增加 Thread.sleep() 时间并调整大小,则动画会改善,但仍然不稳定。
为什么代码在我的 MacBook 上不起作用?我怎样才能让它起作用?
原始代码(适用于 Windows 10 但不适用于我的 Mac):
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GraphicsTestA extends JFrame{
int x1 = 60;
int x2 = 150;
public static void main(String [] args){
GraphicsTestA gta = new GraphicsTestA();
gta.animate();
}
private void animate()
{
while(true)
{
for(int i=0; i <100; i ++)
{
x1 = x1 + 1;
x2 = x2 - 1;
try
{
Thread.sleep(100);
}
catch(Exception ex)
{}
repaint();
}
x1 = 60;
x2 = 150;
}
}
public GraphicsTestA() {
setSize(200,200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
this.validate();
}
public void paint(Graphics g) {
super.paint(g);
g.drawString("Hello World",80,80);
g.drawLine(x1,60,x2,150);
g.drawRect(100,40,30,30);
}
}
【问题讨论】:
标签: java windows macos swing graphics2d