0

うまくいかないペイントコンポーネントの助けが必要です。助けてください:( ps:すべてのインポートがあります...

public JavaGame() {
    setVisible(true);
    setSize(500, 500);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false);
    setLocationRelativeTo(null);
    setTitle("Java Game");
}

public void paintComponent (Graphics g)
{
    super.paintComponents(g);
    g.drawString("Hello World!", 20, 20);
}

public static void main(String[] args) {
            new JavaGame();
}
4

2 に答える 2

3

JFrame は ではなく、オーバーライドできるメソッドがJComponentありません。(これを見るために注釈をpaintComponent追加します)@Override

また、そうあるべきです

super.paintComponent(g);

paintComponentメソッドを拡張する新しいクラスに移動しますJComponent

@Override
protected void paintComponent (Graphics g) {
    super.paintComponent(g);
    g.drawString("Hello World!", 20, 20);
}
于 2013-08-06T20:52:33.777 に答える
2

paintComponents()JFrame にはクラスから継承されたメソッドしかありませんjava.awt.Containerが、JPanel にはクラスpaintComponent()から継承されたメソッドがありjavax.swing.JComponentます。ほとんどの場合、後者を使用して描画したいと考えていますが、JavaGameクラスは JFrame サブクラスです。JPanel を JFrame に追加し、paintComponent() をオーバーライドしてラベルに描画することをお勧めします。

于 2013-08-06T20:55:04.670 に答える