2017-01-27 3 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의를 클릭하면, 내 코드를 실행하지 않는 다음과 같이

내 코드입니다. 나는 그것을 알아낼 수 없습니다. 하나의 StackOverflow 질문은 더 이상 존재하지 않는 MouseListener 참조 페이지를 참조합니다.

모두에게 감사드립니다. 감사

+1

['setFocusable (true)'] (https://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#setFocusable (boolean)) 시도해 보셨습니까? – khelwood

+1

더 나은 도움을 받으려면 [MCVE] 또는 [Short, Self Contained, Correct Example] (http://www.sscce.org/)를 게시하십시오. 프레임의 다른 구성 요소가 이벤트를 소비하고 있습니다. –

답변

1

가능한 문제의 몇 :

  1. 당신은 어쩌면 (패널과 같은) 다른 구성 요소 프레임에 추가 이벤트

  2. 에게지고, 프레임에 리스너를 추가를 mouseClickmousePressedmouseReleased의 조합입니다. 마우스가 두 이벤트 사이의 픽셀을 움직이면 이벤트가 생성되지 않습니다. mousePressed를 청취 해보십시오.

도움이 더 필요하면 문제를 나타내는 mcve을 게시하십시오. 앞으로는 MCVE을 모든 질문에 게시하여 귀하가 무엇을 할지도 모를 지 짐작할 필요가 없습니다.

+0

이 코드가 더 좋습니까? –

+0

아! 패널 이었어! 내가 할 필요가 : panel1.addMouseListener (this); 감사! –

+0

@DaveLass'이 코드가 더 좋습니까? '- "MCVE"가 아닙니다. 이 코드는 어떻게 완성 되었습니까? 우리는 그것을 컴파일 할 수 없습니다. '아! 그것은 패널이었습니다! '- 도움이 된 것을 기쁘게 생각합니다. 사람들이 문제가 해결되었음을 알 수 있도록 체크 표시를 클릭하여 답변을 "수락"하는 것을 잊지 마십시오. – camickr