MouseListener第一次不起作用

Dan*_*nny 1 java swing mouselistener

我是Java新手,我正在创建一个简单的GUI.我在Java中有一个标签JFrame,当我点击它时,程序应该显示另一个框架并隐藏当前框架.我也打印它来检查标签(它的作用就像一个按钮)是否有效.第一次它并没有在所有的工作.它的工作原理从第二点击开始下一个尝试,但它并不能掩盖当前帧.

我的代码是:

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);

        }          
    });
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何解决它,以便从第一次单击和隐藏当前帧工作?

Fra*_*ool 6

而不是单击JLabel为什么不创建JButton已经处理了点击的原因,ActionListener并使其看起来像这个问题JLabel的多个答案所示.

但它不会隐藏当前的JFrame

那么,你需要JFrame#dispose()在你的监听器上调用方法,还请看看多个JFrame的使用:好的还是坏的练习?,最好使用卡片布局,或者查看如何使用对话框的教程

  • 按钮也可以有图像:对于[示例](/sf/ask/336097051/)或[tutorial](https ://docs.oracle.com/javase/tutorial/uiswing/components/button.html)示例:)所以,我的答案仍然有效:D (2认同)