繁体   English   中英

Java-如何在打开对话框时关闭窗口

[英]Java - How to close a window on open of a dialog

我创建了一个对话框类,该对话框类在单击JLabel时打开,但是我希望在单击标签时关闭主窗口,而更大的问题是,如果单击了面板,则该标签位于可扩展JPanel的类中就像在setVisible(false)中一样,您明白我的意思了吗,但是当我尝试在面板类中使用多态来获取主窗口类和对话框时,它被证明是成功的,但是当单击标签时,出现了一个新的类似主窗口弹出并立即消失。 即它复制了主窗口,我知道这个问题可能看起来像一个大挑战,因为没有代码,文件太复杂了,但是我知道那里有一个专业人士,谁可以得到这个代码的图片并帮助我, 谢谢

“一个新的类似主窗口弹出并立即消失。即它复制了主窗口,”-

看到JPanel如何是一个单独的类,在我看来,您好像有一个引用问题。 我敢打赌,您所做的就是创建一个new MainWindow以便您可以引用它。 喜欢

mousePressed(MouseEvent e) {
    MainWindow window = new MainWindow();
    window.dispose();
} 

那肯定可以解释这个问题。 有几种方法可以解决此问题。 我将为您提供新手方式,因为您看起来仍然像新手一样:D随着学习的深入,您可能会学到更多正确的方法。 因此,您可以执行以下操作,将MainWindow引用传递给JPanel类,而不是创建一个new MainWindow

public class MyPanel extends JPanel {
    private MainWindow window;

    public MyPanel(final MainWindow window) {
        this.window = window;
        JLabel label = new Label();
        label.addMouseListener(new MouseAdapter(){
            public void mousePressed(MouseEvent e) {
                window.setVisible(false); // or dispose
            }
        });
    } 
}

实例化MyPanel ,将MainWindow的引用传递给MyPanel ,例如MyPanel panel = new MyPanel(MainWindow.this);

暂无
暂无

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

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