0

5つのボタンを含むプログラムがあります。

i)正方形ii)長方形iii)円iv)三角形v)クリア

最初の4つのボタンのいずれかをクリックすると、次のコードを使用して描画キャンバスにそれぞれの形状が描画されます。

図形をドラッグできます。また、サイズを変更する必要があります。図形の4つのエッジ(NW、NE、SW、SE)の周りでマウスのカーソルを変更しようとしていました。正方形と長方形には4つの辺があるため、これは問題なく機能します。ただし、円と三角形に同じものを実装するのに問題があります。

これは、mouseClickedイベントで行ったことです。

たとえば、文字列shape_typeに円が含まれている場合、ユーザーが図形の境界を確認できるように、文字列の周囲に境界線を描画します。

ただし、ifステートメント内で次のコードを使用することはできません。

どうすれば境界線を描くことができますか?ありがとう :)

4

1 に答える 1

1

あなたはメソッドでペイントを行うことができないということは正しいですMouseListener。できることはメソッドで設定shapeUnderMouseしてmouseClickedから、を呼び出しますrepaint。視覚的に変化していることがわかっている領域のみを再描画すると、パフォーマンスが向上しますが、必ずしも必要ではありません。

if (shapeUnderMouse != null)ブロックはメソッドに配置する必要がありますpaint

于 2012-11-21T11:56:53.043 に答える