即使它在同一个类中声明,也无法找到对象

时间:2015-05-08 15:15:59

标签: java user-interface

我目前正在学习如何在Java中构建GUI,并且遇到以下错误“无法找到符号 - 类侦听器”。

以下代码创建单选按钮,然后将它们与JLabel和动作侦听器配对。但是,即使我将侦听器作为按钮的参数提供,编译器也告诉我它无法找到侦听器类。有谁知道这是为什么?

按钮方法的参数行发生错误。非常感谢任何帮助。

private void build(Stadium stadium)
    {  

       Listener listener = new Listener();

       add(button("Front", listener));
       add(button("Middle", listener));
       add(button("Back", listener));

    }

    private JRadioButton button(String label, Listener listener)
    {   JRadioButton button = new JRadioButton(label);
        button.addActionListener(listener);
        group.add(button);
        return button;  }

3 个答案:

答案 0 :(得分:2)

使用ActionListener而不是Listener,它们与GUI中的Listener完全相同。

private void build(Stadium stadium)
{  

   ActionListener listener = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            //Here you implement what you want your listener to execute on  button click;
        }
    };

   add(button("Front", listener));
   add(button("Middle", listener));
   add(button("Back", listener));

}

private JRadioButton button(String label, Listener listener)
{   JRadioButton button = new JRadioButton(label);
    button.addActionListener(listener);
    group.add(button);
    return button;  }

答案 1 :(得分:1)

您需要一个ActionListener,而不是一个Listener。您的类应该实现ActionListener (public class GUI implements ActionListener {

然后实现actionPerformed方法。

将此类的实例添加为侦听器。

答案 2 :(得分:-1)

您可能需要导入Listener