1

以下に示すコードがあります。

public VizCanvas(){
    {
        this.setBackground(Color.black);
        this.setSize(400,400);
    }
}

正常に機能し、パネルが黒い背景で表示されます。しかし、何もしない paint メソッドを実装すると、色がデフォルトの色、つまり灰色に変わります。

graphics.setColor() を設定しようとしましたが、役に立ちませんでした。

4

2 に答える 2

10

ペイント方法でキャンバスを背景色に塗りつぶす必要があります。次のようなもの:

g.setColor(Color.BLACK);
g.fillRect(0, 0, getWidth(), getHeight());

その後、必要なものを描きます。super.paint(g)何かを行う前に、代わりに paint メソッドを呼び出すこともできます。

于 2010-05-14T00:57:22.913 に答える
2

カスタムペイントは、paint()メソッドではなく、paintComponent()メソッドをオーバーライドして実行する必要があります。次に、super.paintComponent()を呼び出して、背景をペイントするだけです。

コンポーネントのサイズを設定しても何も起こりません。レイアウトマネージャーはサイズを上書きします。優先サイズを設定するか、getPreferredSize()メソッドをオーバーライドする必要があります。

Swingの基本についてはSwingチュートリアルをお読みください。「カスタムペイント」と「レイアウトマネージャーの使用」に関するセクションがあります。

于 2010-05-14T01:37:57.317 に答える