我正在嘗試使用JPanle和JFrame編寫遊戲。我在一個框架內設置了一個面板。當我在面板上繪製矩形大小的面板爲0,0時。矩形向上移動並留下一些像素。我該如何解決這個問題?我搜索了一下,我看到了插入方法,但我不想每次繪製時都使用它來計算我的座標。JPanel和JFrame座標搞砸了
這裏是代碼
public class Game extends JFrame{
public Game(){
this.getContentPane().setPreferredSize(new Dimension(800,600));
pane p = new pane();
this.getContentPane().add(p,BorderLayout.CENTER);
p.setPreferredSize(new Dimension(800,600));
pack();
setResizable(false);
setVisible(true);
}
public static void main(String[] args){
new Game();
}
}
public class pane extends JPanel{
public pane(){
setDoubleBuffered(false);
setBackground(Color.black);
setPreferredSize(new Dimension(800, 600));
setFocusable(true);
requestFocus();
}
@Override
public void paint(Graphics g) {
g.setColor(Color.white);
g.fillRect(0, 0, 800, 600);
g.setColor(Color.black);
g.fillRect(0, 0, 800, 600);
}
}
setDoubleBuffered(false);通常只會導致閃爍 – 2012-07-05 09:51:13
請學習java命名約定並堅持使用它們在Swing中實現自定義繪畫的方法是paintComponent(_not_ paint) – kleopatra 2012-07-05 09:52:25
我知道命名約定,但我懶得在測試代碼示例中做到這一點,對此感到遺憾。 – user1503395 2012-07-05 18:40:23