私はKarnaugh Mapのようなアプリケーションをコーディングしようとしています。数字のグループを囲む楕円を描きたいと思います。パネルの上に楕円を描く方法は?
は、JPanel
にGridLayout
があり、ここにいくつかのパネルを追加しています。だから、結局、私はグリッドのようなインターフェースを持っています。私は楕円をこれらのパネルの上に置いて欲しい。
私はGraphics2D
と方法draw()
を使用しようとしていますが、Graphics2D
オブジェクトをどのようにインスタンス化するかを理解することさえできません。
私がやったことです:その後、
グラムは、Graphicsオブジェクトである、GridLayout
とJPanel
からGraphics
オブジェクトを取得します。その後
Graphics2D g2 = (Graphics2D) g;
g2.draw(new Ellipse2D.Double(x, y,rectwidth,rectheight));
repaint()
のGridLayoutパネルが、何も起こりませんし、それは例外または何かを投げるdoesntの。
私は間違っていますか?
'Graphics2D'をインスタンス化するべきではありません。' JPanel'から 'paintComponent(Graphics)'をオーバーライドし、そこに描画を行うべきです。参照してください:http://stackoverflow.com/questions/2509561/how-to-draw-a-filled-circle-in-java – Berger
ああ、ありがとう、しかし、どのようにjavaは 'paintComponent(グラフィックス)'を管理するのですか?私がしたいときに私はちょうどそれを呼び出すことができますか? –
このメソッドは、コンポーネントが再描画されるたびに自動的に呼び出されます。手動で再ペイントをトリガする必要があると実際に感じるときにはrepaint()を呼び出すことができますが、そうする必要はないと思います。 – Berger