Java方法调用预期

时间:2013-05-07 11:45:32

标签: java

这是一个java程序,有两个按钮用于更改整数值并显示它。 但是在IntelliJIDEA中有两行

increase.addActionListener(incListener());
decrease.addActionListener(decListener());

继续显示错误'预期方法调用'。

我不知道该怎么做才能解决这个问题。

任何帮助将不胜感激

感谢

注意:完整的代码附在下面。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main extends JDialog {
public JPanel contentPane;
public JButton decrease;
public JButton increase;
public JLabel label;

public int number;

public Main() {
    setContentPane(contentPane);
    setModal(true);

    increase = new JButton();
    decrease = new JButton();
    increase.addActionListener(incListener());
    decrease.addActionListener(decListener());

    number = 50;
    label = new JLabel();
}

public class incListener implements ActionListener {
    public void actionPerformed (ActionEvent event) {
        number++;
        label.setText("" + number);
    }
}

public class decListener implements ActionListener {
    public void actionPerformed (ActionEvent event) {
        number--;
        label.setText("" + number);
    }
}

public static void main(String[] args) {
    Main dialog = new Main();
    dialog.pack();
    dialog.setVisible(true);
    System.exit(0);

}
}

7 个答案:

答案 0 :(得分:16)

incListener和declListener是类,而不是方法。

尝试

increase.addActionListener(new incListener());

btw,重命名你的类名,使它们以大写

开头

答案 1 :(得分:4)

这很简单:使用new incListener()代替incListener()。后者试图调用名为incListener的方法,前者从类incListener创建一个对象,这就是我们想要的。< / p>

答案 2 :(得分:0)

代替这些行
increase.addActionListener( new incListener());
decrease.addActionListener( new decListener());

答案 3 :(得分:0)

incListener和decListener是一个类,但不是一个方法,所以你必须调用new来使用它们,试试这个:

increase.addActionListener(new incListener()); decrease.addActionListener(new decListener());

抱歉我的英文不好

答案 4 :(得分:0)

进行以下更改:

 public Main() {
    contentPane = new JPanel();
    setContentPane(contentPane);
    setModal(true);

    increase = new JButton("inc");
    decrease = new JButton("dec");
    contentPane.add(increase);
    contentPane.add(decrease);
    increase.addActionListener(new incListener());
    decrease.addActionListener(new decListener());

    number = 50;
    label = new JLabel(number+"");
    contentPane.add(label);
}

答案 5 :(得分:0)

这很可悲,但是我不得不向Google发出同样的错误...我盯着一个返回类的方法。我放弃了Error in FUN(X[[i]], ...) : object 'group' not found 运算符。

newreturn <class>(<parameters>)

答案 6 :(得分:-1)

每当使用 new 运算符创建一个字符串对象时,都会创建一个新的对象,这就是您的程序正在寻找的对象。 以下链接对于了解字符串和新字符串之间的区别很有用。 What is the difference between "text" and new String("text")?