2012-04-07 17 views
0

ペイントのようにシェイプをJavaで描画するにはどうすればいいですか?例えばマウスで制御されたシェイプ描画

私は矩形を描画する場合は、このコマンドはそれを描画します:

g2.fill3DRect(mt, mf, 45, 45, true); 

をしかし、どのように、私は増加または私たちが行ったように、マウスを使用して、実行時にオブジェクトまたは形状の大きさを小さくすることができますペイントで?

+0

サイドノート。一般的に、 'paint()'や 'paintComponent()'をオーバーライドして、その 'Graphics'オブジェクトを使ってペイントすることをお勧めします。ここに2つの例があります([1](http://stackoverflow.com/a/10055672/418556)、[2](http://stackoverflow.com/a/10055306/418556))、代わりに 'BufferedImage' 。 「カスタムペインティング」を行うために、画像から直接グラフィックスオブジェクトをつかむことができます。 –

答えて

1

は、それが押された後のマウスの位置を取得するにはmouse listenerを使用するときに

  • リリース形状
  • をマウスダウン時に新しい形状を作成します。すなわち

    g2.fill3DRect(mt, mf, mouse.getX(), mouse.getY(), true); 
    

    しかし万人の長方形が同時に存在しないように、各ドローの前に画面全体で四角形を描画することで、画面をクリアします。これはもちろん、最も基本的な例です。ダブルバッファリングと練習を見てください。

    0

    シェイプの属性を保持するシェイプオブジェクトを実装します。

    パネルは、必要なときに描画する図形のリストを維持する必要があります。また、1つの形状をマウスに取り付けることもできます。あなたがマウスを移動した場合、パネルを再描画

    • 更新あなたの形状と:

      はその後になるあなたのパネルへのMouseListenerを登録します。

    • あなたがのmouseUp
    関連する問題