我目前正在嘗試創建一個非常簡單的遊戲,但我很快遇到了問題。它應該畫的盒子只是部分顯示。它似乎只能在有限的區域內顯示,但我不知道會導致這種情況或我如何解決它。JComponent僅部分顯示
public class Game
{
public static void main(String[] args)
{
Game game = new Game();
}
public Game()
{
JFrame gameFrame = new JFrame();
JPanel somePanel = new JPanel();
Box testBox = new Box(10, 10, 20, 20);
somePanel.add(testBox);
gameFrame.add(somePanel);
gameFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gameFrame.add(testBox);
gameFrame.setResizable(true);
gameFrame.setBounds(500, 500, 600, 350);
gameFrame.setVisible(true);
}
}
與主
public class Box extends JComponent
{
private int x;
private int y;
private int width;
private int height;
public Box(int x, int y, int width, int heigth)
{
this.x = x;
this.y = y;
this.width = width;
this.height = heigth;
}
public void paintComponent(Graphics g)
{
g.drawRect(x, y, width, height);
}
}
該類並且是類('nt)的繪製矩形。
注意:這是我第一次使用Stackoverflow,所以如果我做錯了什麼,請告訴我。
這裏是幀的圖像:
繪製延伸的JPanel似乎工作,這不是我想要的一類中,但至少它的工作原理。
請正確格式化(縮進)您的代碼,併發佈一個完整的最小程序來重現問題。這段代碼不會編譯,如果我將g2d重命名爲g,那麼它工作正常(儘管somePanel是無用的,因爲您將該框添加到它,但是之後立即將其添加到框架本身)。另外,尊重Java命名約定。變量以小寫字母開頭。 –
您正在添加兩個測試箱 - 一次添加到某個面板,一次添加到遊戲幀。 – Kylar
@Kylar剛剛嘗試刪除該行,但似乎沒有任何改變。 – aulerelyn