2013-07-15 33 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

相关问题