2017-01-27 6 views
0

MouseListenerを使用してマウスクリックで実行するコードを取得しようとしています。次のようにJava Swing mouseClickが動作しない

私のコードは次のとおりです。

class TestingLayout extends JFrame implements MouseListener, MouseMotionListener{ 
... 
    private JFrame w = new JFrame(); 
    private JPanel panel1 = new JPanel(new GridLayout(4,2),false); 

    public TestingLayout(){ 
    addMouseListener(this); 
    BoxLayout boxLayout = new BoxLayout(w.getContentPane(),BoxLayout.Y_AXIS); 
    w.setLayout(boxLayout); 
    w.add(panel1); 
    w.setSize(800,600); 
    w.setVisible(true); 
    ... 
    } 
    ... 
    @Override 
    public void mousePressed(MouseEvent e){ 
    System.out.println("eh"); 
    } 
} 

しかし、私はJFrameのをクリックしたとき、それは私のコードを実行されません。 私はそれを把握していないようです。 1つのStackOverflow質問は、もはや存在しなくなったMouseListenerリファレンスページを参照しています。

すべてのお役に立ちました。 おかげ

+1

['setFocusable(true)'](https://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#setFocusable(boolean))を試しましたか? – khelwood

+1

すぐに役立つように、[MCVE]または[短く、自己完結型、正しい例](http://www.sscce.org/)を投稿してください。フレーム内の他のコンポーネントがイベントを消費している可能性があります。 –

答えて

1

可能性のある問題のカップル:

  1. あなたはので、多分(パネルのような)別のコンポーネントがフレームに追加されたイベントに

  2. を取得している、フレームにリスナーを追加しますmouseClickmousePressedmouseReleasedの組み合わせです。マウスが2つのイベント間のピクセルを移動する場合、イベントは生成されません。 mousePressedをリスニングしてみてください。

さらにヘルプが必要な場合は、問題を示す適切なmcveを投稿してください。将来的にはMCVEがすべての質問と一緒に投稿される必要がありますので、あなたが何をしているかどうか推測する必要はありません。

+0

このコードは良いですか? –

+0

ああ!パネルだった!私はする必要があった:panel1.addMouseListener(this);ありがとう! –

+0

@DaveLass 'このコードはいいですか? ' - 「MCVE」ではありません。そのコードはどのように完成していますか?コンパイルできません。 「ああ!それがパネルだった! ' - それが助けてくれてうれしい。チェックマークをクリックして回答を「受け入れる」ことを忘れないでください。人々は問題が解決されたことを知ります。 – camickr

関連する問題