ペイントのようにシェイプをJavaで描画するにはどうすればいいですか?例えばマウスで制御されたシェイプ描画
私は矩形を描画する場合は、このコマンドはそれを描画します:
g2.fill3DRect(mt, mf, 45, 45, true);
をしかし、どのように、私は増加または私たちが行ったように、マウスを使用して、実行時にオブジェクトまたは形状の大きさを小さくすることができますペイントで?
ペイントのようにシェイプをJavaで描画するにはどうすればいいですか?例えばマウスで制御されたシェイプ描画
私は矩形を描画する場合は、このコマンドはそれを描画します:
g2.fill3DRect(mt, mf, 45, 45, true);
をしかし、どのように、私は増加または私たちが行ったように、マウスを使用して、実行時にオブジェクトまたは形状の大きさを小さくすることができますペイントで?
は、それが押された後のマウスの位置を取得するにはmouse listenerを使用するときに
g2.fill3DRect(mt, mf, mouse.getX(), mouse.getY(), true);
しかし万人の長方形が同時に存在しないように、各ドローの前に画面全体で四角形を描画することで、画面をクリアします。これはもちろん、最も基本的な例です。ダブルバッファリングと練習を見てください。
シェイプの属性を保持するシェイプオブジェクトを実装します。
パネルは、必要なときに描画する図形のリストを維持する必要があります。また、1つの形状をマウスに取り付けることもできます。あなたがマウスを移動した場合、パネルを再描画
はその後になるあなたのパネルへのMouseListenerを登録します。
サイドノート。一般的に、 'paint()'や 'paintComponent()'をオーバーライドして、その 'Graphics'オブジェクトを使ってペイントすることをお勧めします。ここに2つの例があります([1](http://stackoverflow.com/a/10055672/418556)、[2](http://stackoverflow.com/a/10055306/418556))、代わりに 'BufferedImage' 。 「カスタムペインティング」を行うために、画像から直接グラフィックスオブジェクトをつかむことができます。 –