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

时间:2013-07-15 18:25:55

标签: java awt mouseevent mouselistener mouseenter

我认为搞砸了一切。我曾尝试在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);
         }
   }

1 个答案:

答案 0 :(得分:1)

问题是您要为getPopup设置'contents'参数(组件所有者, 组件内容,int x,int y)为null。这就是你得到IllegalArgumentException的原因。尝试将null更改为“new JButton(”TEST“)”,您将看到大量按钮弹出。内容是您想要弹出的内容(小部件,面板,窗口等)。