使用JButton

时间:2016-11-27 18:39:22

标签: java swing jframe jbutton

我有这个代码的问题,它不编译。你可以帮帮我吗 ? 我点击按钮

时需要关闭JFrame
public class SlotMachine extends JFrame
{
    /*
     *
     */
    JButton btnExit = new JButton("Exit");
    btnExit.addMouseListener(new MouseAdapter() 
    {
        @Override
        public void mouseClicked(MouseEvent arg0) 
        {
            this.dispose();
        }
    });
}

错误是= 新的MouseAdapter(){}

类型的方法dispose()未定义

我不知道如何从mouseClicked方法获取SlotMachine对象

1 个答案:

答案 0 :(得分:1)

您在此处调用this.dispose();密钥,因为this指的是内部类,MouseListener和MouseListener没有dispose()方法。

解决方案:摆脱this,它应该可以工作,因为如果内部类不包含该方法,编译器将查看外部类。或者你可以指定 这是你的意思:SlotMachine.this.dispose();将告诉编译器调用外部SlotMachine类的方法。

在JButton上使用ActionListener有以下几个原因:

  • 如果按钮具有焦点,则按空格键按下将激活按钮的默认行为。这不适用于MouseListener。
  • 此外,预期的行为是,如果通过setEnabled(false)禁用该按钮,则按下该按钮不应导致触发该操作。这不适用于MouseListener,但适用于ActionListener。
  • 您可以轻松地与其他组件(包括JMenuItems)共享ActionListener(或者更好的是,一个AbstractAction)。