1

プログラムのマウス イベントに問題があります。キャンバスを使用して描画プログラムをコーディングしようとしています。

ユーザーが左クリックしてマウスを動かした場合、ユーザーは描画する必要があります。そこで、 を含むクラスを定義しDrawerboolean allow_drawメソッドを追加しましたdraw

drawmousemovedキャンバス内のイベントで呼び出され、 と でallow_drawtrue と false に設定されmousepressedますreleased

しかし、mousemovedマウスボタンを押している間は発射されません...

私の質問は、マウス ボタンが押されているときにマウスの動きを聞くにはどうすればよいかということです。

あなたが私が探しているものを知っていることを願っています:)

4

3 に答える 3

2

ソースコードを投稿していただけますか? MouseMotionListener を追加してみてください。これは私が取り組んでいるプロジェクトの例です。

addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {

        public void mouseDragged(java.awt.event.MouseEvent evt) {
            formMouseDragged(evt);
        }
        public void mouseMoved(java.awt.event.MouseEvent evt) {
            formMouseMoved(evt);
        }
    });`
于 2012-11-02T23:55:25.510 に答える
1

あなたは考慮すべきです、

  • MouseAdapter クラスで便利に組み合わせられる MouseListener と MouseMotionListener の組み合わせを使用します。
  • mousePressed が発生したときに描画をオンにします。
  • mouseReleased が発生したときに描画をオフにする
  • 描画がオンの場合、mouseDragged 内で描画します (if ブロックを使用します)。
  • addMouseListener(...)メソッドとメソッドを使用して、MouseAdapter オブジェクトをコンポーネントに 2 回追加しますaddMouseMotionListener(...)
于 2012-11-03T00:17:11.247 に答える
0

ボタンが押された状態でのマウス移動イベントは、ドラッグ イベントになります。「MouseListener#mouseDragged」を聞くだけで、探しているものです。

于 2012-11-02T23:55:48.683 に答える