PDA

View Full Version : Problem with ActionListener?


Warpscum
04-22-2009, 07:30 PM
Well, this line "public class Ex61 extends JFrame implements ActionListener" gets an error. "Ex61 is not abstract and does not override abstract method actionPreformed" is says. I have googled around a bit but I just can't get it correct. Some help, please?

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

public class Ex61 extends JFrame implements ActionListener
{
private JLabel instruktion1;
private JLabel instruktion2;
private JTextField inruta;
private JTextArea utruta;
private JButton sort;
private String[] namn = new String[20];
private int antal = 0;

// Konstruktor
public Ex61(){
//Anropa superklassen konstruktor och ge titeln
super("Namnlista");

//Skapa paneler och placera dessa i fönstret
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
p1.setLayout(new GridLayout(3,1));
getContentPane().add(p1, "North");
getContentPane().add(p2, "Center");
getContentPane().add(p3, "South");

//Skapa komponenter och placera dem i paneler
instruktion1 = new JLabel ("Skriv in dina uppgifter");
instruktion2 = new JLabel ("Tryck sedan sortera");
inruta = new JTextField(30);
utruta = new JTextArea(20, 30);
sort = new JButton("Sortera");
p1.add(instruktion1);
p1.add(inruta);
p1.add(instruktion2);
p2.add(utruta);
p3.add(sort);

// Låt dessa objekt lyssna på händelser
inruta.addActionListener(this);
sort.addActionListener(this);

// Låt dessa objekt lyssna på fönsterstängning
addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});

// Anpassa och visa upp fönstret
pack();
setVisible(true);
}

// Metod som anropas vid någon händelse
public void actionPreformed(ActionEvent ae){
if (ae.getSource() == inruta){
String data = inruta.getText();
namn[antal++] = data;
inruta.setText("");
utruta.append(data + "\n");
}
else{
Sort.hora(namn, antal);
utruta.setText("");
for (int i = 0; i < antal; i++){
utruta.append(namn[i] + "\n");
}
}
}

// mainmetoden
public static void main(String [] args){
Ex61 namnFönster = new Ex61();
}

}

TheShaner
04-22-2009, 10:00 PM
Change this line:
public void actionPreformed(ActionEvent ae){
To:
public void actionPerformed(ActionEvent ae){
You just misspelled the method that you need to override for the ActionListener class.

-Shane

Warpscum
04-23-2009, 07:07 AM
Ah, thank you.