1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】Javaのメソッド呼び出しが期待される

2022-01-01 03:15:28

質問

2つのボタンを使って整数値を変更し、表示する小さな関数を実装したいのですが、コードは以下の通りです。

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

}
}

実行すると、以下のコードで発生します。

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

以下のようなエラーが発生しました。

Method call expected

解決方法は?

incListener と declListener はクラスであり、メソッドではありません。

試す

increase.addActionListener(new incListener());

btw、クラス名を大文字で始まるように変更してください。