2013-07-15 4 views
1

모든 것을 망쳐 놓은 것 같습니다. MouseEntered 이벤트가 발생하면 팝업 창을 만들려고했습니다. 이 문제를 어떻게 해결할 수 있습니까?MouseEnter 이벤트가 발생하면 팝업 표시

public class pop extends JFrame{ 

    class mypopUpShow implements ActionListener{ 
    JComponent c; 
    // final Random random; 
public mypopUpShow(JComponent c){ 
    this.c=c; 
    } 
    @Override 
    public void actionPerformed(ActionEvent ae) { 
     Random random=new Random(); 
     int x = random.nextInt(200); 
     int y = random.nextInt(200); 
     PopupFactory factory=PopupFactory.getSharedInstance(); 
     Popup p=factory.getPopup(c,null,x,y); 
     p.show(); 
    } 
    } 
    public pop() { 
    JPanel Panel=new JPanel(); 

    final Timer t=new Timer(100, new mypopUpShow(Panel)); 
    MouseListener listener=new MouseAdapter() { 

     @Override 
     public void mouseEntered(MouseEvent me){ 
     t.start(); 
     } 
}; 
    setSize(300,300); 
    Panel.addMouseListener(listener); 

    add(Panel); 
    } 
    public static void main(String...arg){ 
    new pop().setVisible(true); 
     } 
    } 
+1

작동하지 않는 기능은 무엇입니까? 당신이보고있는 것과 당신이보기를 기대하는 것을 묘사하십시오. –

+0

1) 코드 블록에 일관되고 논리적 인 들여 쓰기를 사용하십시오. 코드의 들여 쓰기는 사람들이 프로그램 흐름을 이해하도록 돕기위한 것입니다. 2) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 3) 프레임 또는 기타 최상위 컨테이너를 확장하지 마십시오. 대신 하나의 인스턴스를 만들고 사용하십시오. 4) 빈칸 한 줄의 공백은 소스 코드에서 항상 * 충분합니다. 5) 항상 오류 및 예외 출력을 복사/붙여 넣기하십시오. –

+0

안녕하세요 jim 나는 mouseEntered 이벤트 works.But 예외 AWT-EventQueue-0 java.lang.IllegalArgumentException 예외가 발생하는 팝업 창 만들기 시도했다 말했다 : Popup.getPopup null이 아닌 내용이 전달되어야합니다 – user2583511

답변

1

문제는 당신이 getPopup (구성 요소 소유자, 구성 요소 내용의 '내용'매개 변수를 설정하는 것입니다 :

Popup p=factory.getPopup(c,null,x,y); 

나는 매개 변수

이 코드의

나머지에 대해 확실하지 않다 , int x, int y)를 null로 설정합니다. 이것이 IllegalArgumentException을 얻는 이유입니다. 널 (null)을 "새로운 JButton ("TEST ")"과 같이 변경하면 많은 팝업 버튼이 나타납니다. 내용은 팝업 (위젯, 패널, 창 등)에 대한 팝업입니다.

+0

감사합니다 너는 대단하다. – user2583511

관련 문제