現在、非常に単純なゲームを作成しようとしていますが、すぐに問題に遭遇しました。描画するボックスは部分的にしか表示されません。限られた領域にしか表示されないようですが、これが何を引き起こしたのか、どのように解決できるのか分かりません。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命名規則を尊重する。変数は小文字で始まります。 –
あなたはtestboxを2度追加します - somepanelに1回、gameframeに1回。 – Kylar
@Kylarその行を削除しようとしましたが、何も変更されていないようです。 – aulerelyn