繁体   English   中英

当MouseEnter事件触发时显示弹出窗口

[英]Show popup when MouseEnter event fires

我认为一切都搞砸了。 我尝试在MouseEntered事件触发时创建弹出窗口。 我怎样才能解决这个问题?

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);
         }
   }

问题是您正在将getPopup(Component owner,Component contents,int x,int y)的'contents'参数设置为null。 这就是为什么您收到IllegalArgumentException的原因。 尝试将null更改为“ new JButton(“ TEST”)“之类的内容,您会看到大量的按钮弹出。 内容就是您要弹出的内容(小部件,面板,窗口等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM