Fehler im GUI-Code

  • Themenstarter Themenstarter Chiron1991
  • Beginndatum Beginndatum
C

Chiron1991

Gast
Hallo zusammen,

ich mache gerade meine ersten Schritte mit Java-GUIs und stoße dabei auf ein kleines Problem.
Hier erstmal mein Code.

In meiner Hauptklasse steht:
Java:
public class Start {

    public static void main(String[] args) {
    AppWindow fenster=new AppWindow();
    fenster.setBounds(100,100,800,600);
    fenster.show();
    }

}

In meiner Klasse AppWindow steht:
Java:
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public final class AppWindow extends JFrame
{
    JLabel lb_eingabe;
    JTextField txt_eingabe;
    JTextArea txta_ausgabe;
    JButton btn_start;

    public AppWindow()
    {

        this.getContentPane().setLayout(null);  //keinen Layout-Manager benutzen
        this.buildWindow();

        //WindowListener noch einbauen

    }

    protected void buildWindow()
    {

        //Objekte erzeugen
        lb_eingabe=new JLabel("Anzahl zu erzeugender Fahrzeuge:");
        txt_eingabe=new JTextField();
        txta_ausgabe=new JTextArea();
        btn_start=new JButton("Erzeugen!");

        //Positionen festlegen
        lb_eingabe.setBounds(5,5,400,25);
        txt_eingabe.setBounds(5,35,400,25);
        btn_start.setBounds(5,65,150,25);
        txta_ausgabe.setBounds(5,95,400,600);

        //Objekte hinzufügen
        this.getContentPane().add(lb_eingabe);
        this.getContentPane().add(txt_eingabe);
        this.getContentPane().add(btn_start);
        this.getContentPane().add(txta_ausgabe);
        this.pack();

        //ActionListener auf Button legen
        btn_start.addActionListener(new ActionListener()
                    {
                        public void actionPeformed(ActionEvent e)
                        {
                            //Erzeugung starten
                            erzeugen();
                        }
                    }
                );

    }

    public void erzeugen()
    {

        //mein Berechnungscode

    }

}

In Zeile 51 (die geschweifte Klammer) in der Klasse AppWindow kreidet mit mein NetBeans allerdings einen Fehler an, der da lautet "<anonymous AppWindow$1> is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener"
Als Lösungvorschläge bietet er mir an:
1. Alle abstrakten Methoden importieren
2. Anonymes Element zu Mitglied konvertieren

Leider habe ich absolut 0 Ahnung was das bedeuten soll. Ich hoffe ihr könnt mir weiterhelfen!

Gruß,
Chiron1991
 
Nachtrag: Eine Startklasse brauchst Du eigentlich nicht und JFrame.show() ist deprecated und sollte nicht mehr verwendet werden.

Alternativ kannst Du es so machen:

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

public final class AppWindow extends JFrame {
	JLabel			lb_eingabe;
	JTextField	txt_eingabe;
	JTextArea		txta_ausgabe;
	JButton			btn_start;

	public static void main(String[] args) {
		new AppWindow();
	}

	public AppWindow() {
		setLocation(100,100);
		setPreferredSize(new Dimension(800,600));
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(null); // keinen Layout-Manager benutzen
		buildWindow();
		setVisible(true);
	}

	protected void buildWindow() {

		// Objekte erzeugen
		lb_eingabe = new JLabel("Anzahl zu erzeugender Fahrzeuge:");
		txt_eingabe = new JTextField();
		txta_ausgabe = new JTextArea();
		btn_start = new JButton("Erzeugen!");

		// Positionen festlegen
		lb_eingabe.setBounds(5, 5, 400, 25);
		txt_eingabe.setBounds(5, 35, 400, 25);
		btn_start.setBounds(5, 65, 150, 25);
		txta_ausgabe.setBounds(5, 95, 400, 600);

		// Objekte hinzufügen
		add(lb_eingabe);
		add(txt_eingabe);
		add(btn_start);
		add(txta_ausgabe);
		pack();

		// ActionListener auf Button legen
		btn_start.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// Erzeugung starten
				erzeugen();
			}

		});

	}

	public void erzeugen() {

		// mein Berechnungscode

	}

}
 

Zurück
Oben