我一直在python编程一段时间,一直对Java学习一段时间感兴趣,所以我想我会给它一个去,所以有怜悯,我知道这是一个无限循环,因此踩踏小心。Java程序流程
import javax.swing.*;
import java.awt.*;
public class snake extends JFrame{
public static void main(String[] args) {
JFrame screen = new JFrame("Snake");
screen.setSize(640, 480);
screen.setResizable(false);
screen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container pane = screen.getContentPane();
screen.setVisible(true);
while(true) {
pane.add(new Render());
}
}
}
class Render extends JComponent {
Render(){
}
public void paint(Graphics g) {
g.setColor(Color.white);
g.fillRect(0,0,640,480);
g.setColor(Color.green);
g.fillRect(100,100,25,25);
}
}
我对这个小程序目前的目标是循环我的代码,这样每次我while循环迭代我想的码流更新屏幕重绘任何所以在今后的矩形可以移动。从我的测试中,我已经通过该方法运行循环运行的第一次迭代的在我的渲染类,然后之后,它停留在(我相信这是在Java中的构造函数)
Render() {
}
一段代码。它循环遍历每一次迭代,我希望它的方法。我试图从构造函数中调用该方法,但这种方法无效。我如何路由程序的流程,以便循环中的每个迭代程序都能通过该方法?谢谢你的时间。
那么你对在awt中渲染的建议是什么?有没有一种方法可以在添加Render()的新实例之前清除窗格amd我如何路由我的代码以在循环的每次迭代中重新渲染矩形?谢谢你的回应。 – Ryan 2015-04-04 03:18:50
不,不要在每个循环中添加一个新的“渲染”窗格,只需创建一个实例并添加它。你可以在'Render'中更改变量以生成动画 – MadProgrammer 2015-04-04 03:19:54
好吧谢谢你的回答我认为Render的实例在添加后不会改变,你需要更新它 – Ryan 2015-04-04 03:21:37