我的代码是这样的,当我运行它时,我只是得到一个黑色的窗口,我不知道为什么。
感谢您的任何反馈。 它应该打印出一张图片,并最终使其移动。
package assignment04;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GoLDriver
{
public static void main(String[] args)
{
GoLModel model= new GoLModel();
JFrame frame = new JFrame();
JPanel panel= new JPanel();
panel.setLayout(new BorderLayout());
panel.setPreferredSize(new Dimension(400, 300));
model.initialize();
frame.add(panel);
frame.pack();
frame.setTitle("Game of Life");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GoLComponent component = new GoLComponent(model,15,20,20);
panel.add(component);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
for(int i=0; i <40; i++)
{
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
model.count();
model.update();
panel.repaint();
}
}
}
最佳答案
最可能的原因是您阻止了事件调度线程,阻止其绘制...
for(int i=0; i <40; i++)
{
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
model.count();
model.update();
panel.repaint();
}
看看Concurrency in Swing和 How to use SwingTimer然后搜索 animation in swing在 Google 上获取更多建议...
关于java - 为什么我的 JFrame 只是一个黑色的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057731/