[英]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.