AWT Methodenaufruf aus actionPerformed-Methode

Quax

Mitglied
Hallo Zusammen,
ich möchte mit dem Klick auf einen Button (siehe Codebeispiel) die Methode "Nachricht" aus der Klasse "Show" aufrufen. Die Klasse habe ich in eine separate Datei gepackt. Das Ganze möchte ich machen um meine Programme etwas zu strukturieren. Ich möchte z.B. einen Arduino ansteuern.
Jedoch wenn ich den button1 drücke kommt beim Aufruf der Klasse folgende Fehlermeldung:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at listen01.Listener_1.actionPerformed(Listener_1.java:36)
In der angemerkten Zeile 36 sollte die Methode "Nachricht" aus der Klasse "zeige" aufgerufen werden.
Was mache ich falsch? Bitte umHilfe!
Danke Quax

Java:
package listen01;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Listener_1 extends JFrame implements ActionListener{
    // Deklarationen
    private JButton button1;
    private JPanel panel;
    public Show zeige;
 
    // Konstruktor
    public Listener_1() {
        this.setTitle("Button Test");
        this.setSize(200, 200);
     
        panel = new JPanel();
     
        // Button erstellen
        button1 = new JButton("Verbinde");
        // Button dem Listener zuordnen
        button1.addActionListener(this);
        // Button dem Panel hinzufügen
        panel.add(button1);
        // panel dem JFrame hinzufügen
        this.add(panel);
    }
 
    public void actionPerformed(ActionEvent ae) {
        if(ae.getSource() == this.button1)
            System.out.println("Button gedrückt");
            zeige.Nachricht();
    }

    public static void main(String[] args) {
        Listener_1 frame = new Listener_1();
        frame.setVisible(true);
    }

}
Java:
package listen01;

public class Show {
    // Konstruktor
    public Show(){
        /* ... leer ... */
    }
    public void Nachricht() {
        System.out.println("Methode Nachricht aufgerufen");
    }
}
 
Zuletzt bearbeitet:
Deiner Variable 'zeige' wurde nie ein Wert zugewiesen, daher ist sie null. Du musst deinem zeige Objekt eben auch eine Instanz zuweisen:
Java:
public Show zeige = new Show();

Ansonsten ist dein Code recht...nunja unschön^^
Ich würde dir dringen mal ein Grundlagen Buch ans Herz legen. Das folgende ist ganz gut und zudem kostenlos:
http://openbook.rheinwerk-verlag.de/javainsel/
 
Super vielen Dank. Das war ein übler Fehler.
Aber gibts denn nicht ein gutes Online-Tutorial. Finde wenn man es quasi "erzählt" bekommt prägt es sich besser ein als wenn man 1500 Seiten erstmal liest.
Danke Quax
 

Neue Themen


Zurück
Oben