我正在學習使用緩衝區策略與畫布,我編寫了這個類,然後將其添加到另一個類的JFrame中。 我想繪製一個矩形,但畫布是空的。控制檯說Java緩衝區策略學習
at java.awt.Component$FlipBufferStrategy.createBuffers(Unknown Source)
at java.awt.Component$FlipBufferStrategy.<init>(Unknown Source)
at java.awt.Component$FlipSubRegionBufferStrategy.<init>(Unknown Source)
at java.awt.Component.createBufferStrategy(Unknown Source)
at java.awt.Canvas.createBufferStrategy(Unknown Source)
at java.awt.Component.createBufferStrategy(Unknown Source)
at java.awt.Canvas.createBufferStrategy(Unknown Source)
at myPanel.draw(Pannello.java:72)
at myPanel.run(Pannello.java:59)
at java.lang.Thread.run(Unknown Source)
而這裏的代碼。我已經對它進行了調試,並將其應用到我製作的每種方法中。所以現在基本上我不知道爲什麼它沒有顯示我的矩形。
public class myPanel extends Canvas implements Runnable {
//FIELDS
private static final long serialVersionUID = 1L;
public static int WIDTH = 1024;
public static int HEIGHT = WIDTH/16 * 9;
private boolean running;
private Thread t1;
public synchronized void start(){
running = true;
t1 = new Thread (this);
t1.start(); // calls run()
}
//INIT
public myPanel(){
setPreferredSize(new Dimension(WIDTH, HEIGHT));
setFocusable(true);
requestFocus();
}
//Main runnable
public void run(){
while (running){
update();
draw();
}
}
public void update(){
}
public void draw(){
BufferStrategy bs = getBufferStrategy();
if (bs== null){
createBufferStrategy(3);
}
Graphics g = bs.getDrawGraphics();
g.setColor(Color.BLACK);
g.fillOval(0, 0, 20, 20);
g.dispose();
bs.show();
}
}
你可以請你展示你的JFrame類嗎? –