以下に示すコードがあります。
public VizCanvas(){
{
this.setBackground(Color.black);
this.setSize(400,400);
}
}
正常に機能し、パネルが黒い背景で表示されます。しかし、何もしない paint メソッドを実装すると、色がデフォルトの色、つまり灰色に変わります。
graphics.setColor() を設定しようとしましたが、役に立ちませんでした。
ペイント方法でキャンバスを背景色に塗りつぶす必要があります。次のようなもの:
g.setColor(Color.BLACK);
g.fillRect(0, 0, getWidth(), getHeight());
その後、必要なものを描きます。super.paint(g)
何かを行う前に、代わりに paint メソッドを呼び出すこともできます。
カスタムペイントは、paint()メソッドではなく、paintComponent()メソッドをオーバーライドして実行する必要があります。次に、super.paintComponent()を呼び出して、背景をペイントするだけです。
コンポーネントのサイズを設定しても何も起こりません。レイアウトマネージャーはサイズを上書きします。優先サイズを設定するか、getPreferredSize()メソッドをオーバーライドする必要があります。
Swingの基本についてはSwingチュートリアルをお読みください。「カスタムペイント」と「レイアウトマネージャーの使用」に関するセクションがあります。