我一直在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