[英]Java Swing JPopupMenu setVisible(false) doesn't work
我有一个MyPopupMenu类,它扩展了JPopupMenu。 在此弹出菜单内,我添加了一个带有ActionListener的JMenuItem,该菜单调用了一个需要几分钟才能返回的过程。 我想在按下此项目后立即关闭弹出菜单。 我的MyPopupMenu类中的方法是这样的:
private JMenuItem newItem(){
JMenuItem item=new JMenuItem();
item.setText("One");
item.setToolTipText("One");
ActionListener mylistener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
MyPopupMenu.this.setVisible(false);
Class1 class1=new Class1(file);
try {
class1.start();
} catch (IOException e) {
e.printStackTrace();
}
}
};
item.addActionListener(mylistener);
return item;
}
这行不通。 在按下项目“一个”后,该过程开始,但是弹出菜单保持打开状态,直到该过程返回(几分钟)。 是否可以使弹出菜单消失但进程继续运行?
您正在对Swing主线程执行操作。 这将阻止Gui进行更新。 您应该将类的开头移至另一个线程。
有关更多信息,请参见此处
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.