Llamada al método Java esperada

Este es un progtwig java con dos botones utilizados para cambiar un valor entero y mostrarlo. Sin embargo, en IntelliJIDEA las dos líneas con

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

seguir mostrando errores ‘Método de llamada esperado’.

No estoy seguro de qué hacer para solucionar este problema.

cualquier ayuda será apreciada

Gracias

Nota: el código completo se adjunta a continuación.

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

incListener y declListener son clases, no métodos.

Tratar

 increase.addActionListener(new incListener()); 

por cierto, cambie el nombre de sus clases para que empiecen con mayúsculas

Es simple: use new incListener() lugar de incListener() . Cuanto más tarde incListener llamar a un método llamado incListener , el primero crea un objeto de la clase incListener , que es lo que queremos.

sustituir las líneas con

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

incListener y decListener son una clase pero no un método, por lo que debes llamar a new para usarlas, prueba esto:

Increase.addActionListener (new incListener ()); disminuir.addActionListener (new decListener ());

Perdón por mi mal ingles

Haga estos cambios:

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

Cada vez que se crea un objeto de cadena utilizando un nuevo operador, se crea un nuevo objeto que es lo que su progtwig está buscando. El siguiente enlace es útil para conocer la diferencia entre una cadena y una nueva cadena. ¿Cuál es la diferencia entre “texto” y una nueva cadena (“texto”)?