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



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

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

看到你的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);

相关内容

  • 没有找到相关文章

最新更新