AWT Kann meinen Fehler beim ActionListener nicht finden

Diskutiere Kann meinen Fehler beim ActionListener nicht finden im AWT, Swing, JavaFX & SWT Bereich.
M

maxigrf

Hallo,
ich kann den Fehler in meinem Code nicht finden.
Ich habe mit dem Window-Builder eine Oberfläche mit einem Button erstellt. Wenn man diesen Button klickt, soll "Button geklickt" ausgegeben werden.
Aktuell passiert nichts, wenn der Button gedrückt wird.
Vielen Dank im Voraus

Code:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;

public class ParameterTest1 extends JFrame implements ActionListener{

    JButton btnKlickMich;

    public static void main(String[] args) {

                    ParameterTest1 frame = new ParameterTest1();
                    frame.setVisible(true);
    }

    public ParameterTest1() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        JPanel contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JButton btnKlickMich = new JButton("Klick mich!");
        btnKlickMich.addActionListener(this);
        contentPane.add(btnKlickMich, BorderLayout.NORTH);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
       
            if (e.getSource() == btnKlickMich) {
            System.out.println("Button geklickt!");
        } 
    }
}
 
Zuletzt bearbeitet:
L

LimDul

Bitte den Code in Code-Tags setzen.

Ursache:
Du definierst ein Feld btnKlickMich - initialisierst es aber nir. Du erzeugt in deinem Konstruktor eine Lokale Variable btnKlickMich, die hat aber nix mit dem Feld zu tun.
 
M

maxigrf

Bitte den Code in Code-Tags setzen.

Ursache:
Du definierst ein Feld btnKlickMich - initialisierst es aber nir. Du erzeugt in deinem Konstruktor eine Lokale Variable btnKlickMich, die hat aber nix mit dem Feld zu tun.
Danke für die schnelle Antwort. Was muss ich also jetzt konkret tun?
 
J

JustNobody

Im Konstruktor keine lokale Variable erstellen sondern die Instanzvariable nutzen.

Also einfach den Typ wegnehmen, denn Typ gefolgt von Variablenname deklariert ja die Variable:
JButton btnKlickMich = new JButton("Klick mich!");
 
MoxxiManagarm

MoxxiManagarm

Ich möchte dir gerne noch einen Rat geben. Ich weiß am Anfang ist es schön in der eigenen Klasse einfach ActionListener zu implementieren. Habe ich früher auch so gemacht! Aber seit Java 8 lässt sich das auch super easy mit dem Functional Interface schreiben und spart dir den source Abgleich und sonst viel Schreibarbeit. Bei dir würde das dann so aussehen:

Java:
public class ParameterTest1 extends JFrame {

    JButton btnKlickMich;

    public static void main(String[] args) {

                    ParameterTest1 frame = new ParameterTest1();
                    frame.setVisible(true);
    }

    public ParameterTest1() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        JPanel contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        btnKlickMich = new JButton("Klick mich!");
        btnKlickMich.addActionListener((ActionEvent e) ->  System.out.println("Button geklickt!"));
        contentPane.add(btnKlickMich, BorderLayout.NORTH);
    }
}
 
Thema: 

Kann meinen Fehler beim ActionListener nicht finden

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben