1

Jpanelで画像をドラッグ&スケールするアプリケーションを開発しています。

画像は JLabel 内に保存されます。

しかし、MouseMotionListener をパネルに追加すると、ウィンドウ全体がドラッグされ、MouseMotionListener を追加しようとすると、画像の側面を選択して拡大縮小できません。

では、MouseMotionListener を BufferedImage に直接追加できますか?

MouseMotionListener を追加したコンポーネントでは、画像の側面を選択できません。側面は、画像を拡大縮小するためのすべての方向を意味します。

窓 :

        addMouseListener(handler);
        addMouseMotionListener(handler);

Jラベル:

        label.addMouseListener(new MouseHandler());
        label.addMouseMotionListener(new MouseHandler());

、、などMouseHandlerのさまざまな操作用に定義されたクラスを次に示します。mousePressedmouseDraggedmouseMove

なぜそのように振る舞うのか、何か考えはありますか?

4

1 に答える 1

1

BufferedImage、一般的な画像操作をサポートするクラスです。グラフィカル ユーザー インターフェイスを備えた対話型プログラムからも、ユーザー インターフェイスを持たない非対話型バッチ処理プログラムからも等しく使用できます。GUI で使用されていないものにマウス リスナーを設定しても意味がないため、 を に追加することはできませMouseMotionListenerBufferedImage

代わりに、画像を表示している GUI コンポーネントにリスナーを追加する必要があります。

于 2013-08-22T11:03:22.153 に答える