私が描く簡単なプログラム(ディスプレイ)マウスが配置されているところはどこでも私のイメージを作成していますに位置 `paintComponent()`メソッドにマウスの座標を提供することはできません。したがって、画像はマウスの矢印で移動します。は、他のクラス
私はJFrame
を作成しました。これにFrame
というクラスでMouseMotionListener
とImage
を追加しました。画像はimageComponent
クラスを使用して追加されます。
paintComponent
方法にこれら
x
と
y
座標を提供する方法を理解することはできませんし、どのようにそれを再描画するには、マウスがmoved.Hereあるたびに私のコードです
MouseMotionListener
で
:
main()
Practice
クラスのメソッド:フレームにリスナーとImageComponent
を追加
public class Practice {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable(){
public void run(){
JFrame frame = new Frame();
frame.setSize(500,500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
});
}
}
Frame
クラス。指定されたパスから画像を描画
class Frame extends JFrame{
Frame(){
add(new imageComponent());
addMouseMotionListener(new MouseAdapter(){
public void mouseMoved(MouseEvent me){
int x = me.getX();
int y = me.getY();
repaint();
}
});
}
}
imageComponent
クラス、上記クラスIにおいてx
とy
を宣言した
class imageComponent extends JComponent{
Image img;
int x,y;
imageComponent(){
img = new ImageIcon("C:\\Users\\Kaushal28\\Desktop\\image.png").getImage();
}
public void paint(Graphics g){
g.drawImage(img, x, y, null);
}
}
:マウス座標。私は、リスナーから取得したいが、これを行う方法を理解することはできません 。助けてください!
EDIT: 私はそれはthisエラー与えているimageComponent
にmouseMotionListener
を追加した場合:
用心を、マウスの座標がどのコンポーネントに対して相対的 – MadProgrammer
を作成しました。おかげ – MadProgrammer
は大丈夫、私は理解MadProgrammer @(http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html)[マウスリスナーを書く方法]それら –