我是 Java 的新手,我正在创建一个简单的 GUI。我在 JFrame
中有一个 Java 标签,当我单击它时,程序应该显示另一个框架并隐藏当前框架。我也打印它以检查标签(就像按钮一样)是否有效。第一次它根本不工作。它在从第二次点击开始的下一次尝试中起作用,但它不隐藏当前帧。
我的代码是:
private void jLabel4MouseClicked(java.awt.event.MouseEvent evt) {
MainFrame mf = new MainFrame();
jLabel4.addMouseListener(new MouseAdapter (){
@Override
public void mousePressed(MouseEvent e){
System.out.println("It works.");
mf.setVisible(true);
NewJFrame2 n2 = new NewJFrame2();
n2.setVisible(false);
}
});
有谁知道如何修复它以便从第一次点击开始工作并隐藏当前帧?
最佳答案
与其单击 JLabel
,不如创建一个 JButton
,它已经使用 ActionListener
处理点击并使其看起来像一个 JLabel
如 this question 上的多个答案所示.
but it does NOT hide the current JFrame
嗯,你需要调用JFrame#dispose()
关于你的监听器的方法,也请看看The Use of Multiple JFrames: Good or Bad Practice? , 最好使用 Card Layout或者看看关于 How to use Dialogs 的教程
关于java - MouseListener 第一次不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44370545/