![](/img/trans.png)
[英]How to close window and open a new one on button press in Java Swing
[英]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.