2013-07-15 30 views
1

我認爲所有東西都搞砸了。我曾嘗試在MouseEntered事件觸發時創建彈出窗口。我怎樣才能解決這個問題?當MouseEnter事件觸發時彈出顯示

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

我不知道有關參數

休息這段代碼:

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)源代碼中的單個空白行是* always *就足夠了。 5)總是複製/粘貼錯誤和異常輸出。 –

+0

嗨,吉姆,因爲我說我已經嘗試創建彈出窗口時mouseEntered事件works.But我得到異常線程「AWT-EventQueue-0」異常java.lang.IllegalArgumentException:Popup.getPopup必須通過非空內容 – user2583511

回答

1

的問題是,你是設置getPopup(組件所有者, 成分含量的「內容」參數,int x,int y)爲null。這就是爲什麼你會得到一個IllegalArgumentException。嘗試將null更改爲「new JButton(」TEST「)」,您將看到大量的按鈕彈出。內容是你想要彈出的東西(一個部件,一個面板,一個窗口等)。

+0

謝謝你戴着你很棒 – user2583511

相關問題