这是一个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);
}
}
答案 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
运算符。
new
与
return <class>(<parameters>)
答案 6 :(得分:-1)
每当使用 new 运算符创建一个字符串对象时,都会创建一个新的对象,这就是您的程序正在寻找的对象。 以下链接对于了解字符串和新字符串之间的区别很有用。 What is the difference between "text" and new String("text")?