ファイルパスからJFrame上の特定の位置に画像を表示するJFrameを作成しようとしています。後で(ボタンがクリックされたとき)、画像を左に50ピクセル移動させます。レイアウトマネージャが必要な場合は、これは自分用のプロジェクトであるため、nullレイアウトを使用したいと思います。自分のレイアウトマネージャを書く方法を学ぶ準備がまだ整っていません。JFrameで画像を手動で配置
これまでは、フレーム内にBufferedImageを表示することができましたが、その位置を指定する方法はわかりません。
正しいアプローチであってもBufferedImageを使用していますか?これを行う最善の方法は何ですか?
アップデート:私はのMouseListenerを使用してのご提案を追跡しようとしましたが、それがこのの結果:
class ImgComponent extends JComponent implements ChangeListener, MouseListener {
MovableImage mi;
public ImgComponent(MovableImage mi) {
this.mi = mi;
mi.addListener(this);
mi.addListener1(this);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(mi.i, mi.getX(), mi.getY(), null);
}
@Override
public void stateChanged(ChangeEvent e) {
repaint();
}
@Override
public void mouseClicked(MouseEvent e) {
mi.setPos(100, 100);
System.out.println("yay");
}
}
しかしunfortinely、のmouseClickedイベントがトリガされません。私はちょうどその地獄のイメージが動いてほしい、笑。
おかげでたくさん!あなたがそれを壊してコメントを追加する前は、混乱していました。それらはとても役に立ちました。質問のみ:画像にリスナーを追加することは可能ですか?その場合、画像自体をクリックすると移動しますか? – user1386318
はい、可能です;-)マウスリスナーをImgComponentに追加し、クリックに応じて反応させることをお勧めします。 – aioobe
ありがとうございました。 :D – user1386318