"The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments"

actionlistener, eclipse, java, swing

Solution

You're trying to add an instance of your `prog` class as the `ActionListener`, but your `ActionListener` is `progEvent` instead. You need to add a `progEvent listener = new progEvent();` and then `addActionListener(progEvent)`.

(Also, you misspelled "separator" in your system property; you won't retrieve what you're looking for.)

Problem

I am a beginner programmer and I am running into a problem with an action listener and my GUI. Here is my code: MAIN CLASS-- ``` import java.awt.*; import java.awt.event.*; import javax.swing.*; public class prog extends JFrame { //add instance variable to hold lockd prog app = new prog(); //create buttons JPanel row1 = new JPanel(); JButton oneLeft = new JButton("oneLeft"); JButton oneRight = new JButton("oneRight"); JPanel row2 = new JPanel(); JButton twoLeft = new JButton("twoLeft"); JButton twoRight = new JButton("twoRight"); JPanel row3 = new JPanel(); JButton threeLeft = new JButton("threeLeft"); JButton threeRight = new JButton("threeRight"); public prog() { super("Prog"); setLookAndFeel(); setSize(400, 800); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); GridLayout layout = new GridLayout(3, 2); setLayout(layout); //add Listeners oneLeft.addActionListener(app); oneRight.addActionListener(app); twoLeft.addActionListener(app); twoRight.addActionListener(app); threeLeft.addActionListener(app); threeRight.addActionListener(app); setVisible(true); } private void setLookAndFeel() { try { UIManager.setLookAndFeel("com.sun.java.plaf."); } catch (Exception e) { //ignore error } } public static void main(String[] args) { prog progApp = new prog(); } } ``` I am getting an error in this class with the action listeners: The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments (prog). Full errors: ``` Description Resource Path Location Type The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments (prog) prog.java /Experiment/src line 33 Java Problem The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments (prog) prog.java /Experiment/src line 35 Java Problem The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments (prog) prog.java /Experiment/src line 34 Java Problem The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments (prog) prog.java /Experiment/src line 37 Java Problem The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments (prog) prog.java /Experiment/src line 36 Java Problem The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments (prog) prog.java /Experiment/src line 38 Java Problem ``` and here is my listener class: ``` import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class progEvent implements ActionListener { prog GUI; String newLine = System.getProperty("line.separater"); public progEvent(prog in) { GUI = in; } public void actionPerformed(ActionEvent event) { String command = event.getActionCommand(); try { File numClicks = new File("numClicks.properties"); FileOutputStream outStream = new FileOutputStream(numClicks); if (command.equals("oneLeft")) { write(outStream, "oneLeft has been clicked."); } if (command.equals("oneRight")) { write(outStream, "oneRight has been clicked."); } if (command.equals("twoLeft")) { write(outStream, "twoLeft has been clicked."); } if (command.equals("twoRight")) { write(outStream, "twoRight has been clicked."); } if (command.equals("threeLeft")) { write(outStream, "threeLeft has been clicked."); } if (command.equals("threeRight")) { write(outStream, "threeRight has been clicked."); } } catch (IOException ioe) { System.out.println("The file could not be written to."); } } void write(FileOutputStream stream, String output) throws IOException { output = output + newLine; byte[] data = output.getBytes(); stream.write(data, 0, data.length); } } ``` I can't get my GUI to show either. I'm using a book to learn it, and using a class as a kind of template for this experiment. But I'm completely stuck. Thanks!

Original source