繁体   English   中英

Java Swing JPopupMenu setVisible(false)不起作用

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

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