Java-如何在打开对话框时关闭窗口
我创建了一个对话框类,在单击JLabel时打开,但我希望在单击标签时关闭主窗口,更大的问题是,标签位于扩展JPanel的类中。现在,如果单击标签,面板将变为setVisible(false),您明白我的意思了吗,但是当我尝试在panel类中使用多态性来获得主窗口类和对话框时,它被证明是成功的,但是当标签被单击时,一个新的类似的主窗口 wnidow弹出并立即消失。ie它复制了主窗口,我知道这个问题可能看起来像一个挑战,因为没有代码,文件太复杂了,但我知道有一个专业人士可以了解这个代码是什么,并帮助我,谢谢 “一个新的类似的主wnidow弹出并立即消失。即它复制了主窗口,” 看到你的Java-如何在打开对话框时关闭窗口,java,swing,user-interface,jframe,Java,Swing,User Interface,Jframe,我创建了一个对话框类,在单击JLabel时打开,但我希望在单击标签时关闭主窗口,更大的问题是,标签位于扩展JPanel的类中。现在,如果单击标签,面板将变为setVisible(false),您明白我的意思了吗,但是当我尝试在panel类中使用多态性来获得主窗口类和对话框时,它被证明是成功的,但是当标签被单击时,一个新的类似的主窗口 wnidow弹出并立即消失。ie它复制了主窗口,我知道这个问题可能看起来像一个挑战,因为没有代码,文件太复杂了,但我知道有一个专业人士可以了解这个代码是什么,并帮助
JPanel
是一个独立的类,我觉得你有一个引用问题。我打赌您所做的是创建一个新的主窗口
,以便可以引用它。像
mousePressed(MouseEvent e) {
MainWindow window = new MainWindow();
window.dispose();
}
这肯定可以解释这个问题。有几种方法可以解决这个问题。我要给你一个新手的方法,因为你看起来仍然像个新手:D随着你的学习深入,你可能会学到更多正确的方法。因此,您可以执行如下操作,将MainWindow
的引用传递给JPanel
类,而不是创建一个新的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
时,将main窗口的引用传递给MyPanel
,如MyPanel=newmypanel(MainWindow.this)代码>在这里也显示一些代码,这样我们就可以帮助我在这篇帖子中回答了你的问题(),你不感谢你的帮助,所以这次我不想麻烦你帮忙。对不起,卡米克,我不能放弃,因为我没有足够的特权这么做,但我可以接受你的问题。你是专业的,这就是向这个新手展示如何做到的