2017-09-01 16 views
0

MouseListenerを使用しようとする際にいくつか問題があります。 MouseListenerを実装しているMouseManagerというクラスを作成してから、フレームにMouseListenerをインポートしましたが、フレームをクリックしても何も起こりません。 は、だからここMouseManagerクラスのコードです:MouseListenerが機能しません

public class MouseManager implements MouseListener { 

@Override 
public void mouseClicked(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    System.out.println("Clicked: " + mx + " " + my); 

} 

@Override 
public void mouseEntered(MouseEvent arg0) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void mouseExited(MouseEvent e) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void mousePressed(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    System.out.println(mx + " " + my); 

} 

@Override 
public void mouseReleased(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    System.out.println("Released: " + mx + " " + my); 

} 

}

、その後、ここで私はMouseManagerクラスに

MouseManager MouseMan = new MouseManager(); 
Window.frame.addMouseListener(MouseMan); 

を実装するために使用したコードだが、何も起こりません前に、私はサイードとし、コンソールにはメッセージは表示されません。 ウィンドウのフォーカスをfalseに設定しようとしましたが、動作しません。 私の悪い英語のために申し訳ありません。

答えて

0

blankAreaとパネルにマウスイベントを登録する必要があります。詳細はhereをお読みください。ここで

は、あなたがしなければならないものの一部です:

public class MouseManager implements MouseListener { 
    Frame frame = new Frame(); 
    frame.addMouseListener(this); 
    .... 
1

あなたは

Frame objFrame = new Frame("MouseListener Demo"); 

objFrame.addMouseListener(this); 

を使用することによってのみ、あなたのMouseManagerクラス、つまり同じクラスでイベントを登録する必要がここでこれはを参照します現在のクラスのインスタンスです。 フレームクラスを直接拡張していないので、フレームのオブジェクトも作成する必要があります。

そして、あなたの仕事が行われるオブジェクトをmakeと呼んでください。

関連する問題