JButton wird bei ActionListener nicht "angenommen"

aandroidd

Mitglied
Hallo nochmal, ich hoffe ich eröffne nicht zu viele Threads:D

Ich mache gerade ja eine GUI und jetzt wollte ich einen JButton unter Textfelder setzen, der, wenn er geklickt wird, den Inhalt der Textfelder ausliest und unter Variablen speichert, jedoch wird beim Anlegen des ActionLiseners für den Button eine Fehlermeldung angezeigt :(

Code:
Java:
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class gui extends javax.swing.JFrame
{
    private static final long serialVersionUID = -3916999143368903548L;

    
    private Toolkit t;
    private int x=0,y=0, width=800, height=600;
    private JMenuBar menubar1;
    private JMenu menu1;
    private JMenuItem menu1_item1;
    private JButton buttonschueler, buttonlehrer, alleschueler, allelehrer, setze;
    private JTextField Vorname, Nachname, Wohnort, Geburtsjahr, Fach1, Fach2, Jahrgang;
    
    
    public gui ()
    {
        t = Toolkit.getDefaultToolkit();
        
        Dimension d = t.getScreenSize();
        
        x = (int) ((d.getWidth() - width) / 2);
        y = (int) ((d.getHeight() - height) / 2);
        setBounds(x,y,width, height);
        setLocationRelativeTo(null);
        setTitle("Schulverwaltung");
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        this.initComponents();
        this.initListeners();
        
        setVisible(true);
    }
    
    private void initComponents()
    {
   
        this.getContentPane().setLayout(new GridLayout(5,5) );
        
        this.buttonschueler = new JButton("Neuen Sch\u00fcler hinzuf\u00fcgen");
        this.buttonlehrer = new JButton("Neuen Lehrer hinzuf\u00fcgen");
        this.alleschueler = new JButton("Alle Sch\u00fcler anzeigen");
        this.allelehrer = new JButton("Alle Lehrer anzeigen");
        
        this.getContentPane().add(this.buttonschueler);
        this.getContentPane().add(this.alleschueler);
        
        this.getContentPane().add(this.buttonlehrer);
        this.getContentPane().add(this.allelehrer);
        

    }
    
    private void initListeners()
    {
        
        this.buttonschueler.addActionListener(new ActionListener()
        {

            @Override
            public void actionPerformed(ActionEvent f) 
            {
                // TODO
                JFrame frame1 = new JFrame();
                frame1.setSize(800, 600);
                frame1.setLocationRelativeTo(null);
                JPanel panel1 = new JPanel();
                panel1.setSize(250, 250);
                panel1.setLayout(new GridLayout(10,10));
                
                JLabel label1 = new JLabel("Vorname: ");
                JLabel label2 = new JLabel("Nachname: ");
                JLabel label3 = new JLabel("Wohnort: ");
                JLabel label4 = new JLabel("Geburtsjahr: ");
                JLabel label5 = new JLabel("Jahrgang: "); 
                
                JTextField Vorname = new JTextField(20);
                JTextField Nachname = new JTextField(20);
                JTextField Wohnort = new JTextField(20);
                JTextField Geburtsjahr = new JTextField(20);
                JTextField Jahrgang = new JTextField(20);
                
                JButton setze = new JButton("Daten speichern");
                
                panel1.add(label1);
                panel1.add(Vorname);
                panel1.add(label2);
                panel1.add(Nachname);
                panel1.add(label3);
                panel1.add(Wohnort);
                panel1.add(label4);
                panel1.add(Geburtsjahr);
                panel1.add(label5);
                panel1.add(Jahrgang);
                panel1.add(setze);
                
                frame1.add(panel1);
                
                frame1.setVisible(true);
            }
            
        });
                
        this.buttonlehrer.addActionListener(new ActionListener()
        {

            @Override
            public void actionPerformed(ActionEvent g) 
            {
                JFrame frame1 = new JFrame();
                frame1.setSize(800, 600);
                frame1.setLocationRelativeTo(null);
                
                JPanel panel1 = new JPanel();
                panel1.setSize(250, 250);
                panel1.setLayout(new GridLayout(2,5));
                
                JLabel label1 = new JLabel("Vorname: ");
                JLabel label2 = new JLabel("Nachname: ");
                JLabel label3 = new JLabel("Wohnort: ");
                JLabel label4 = new JLabel("Geburtsjahr: ");
                JLabel label5 = new JLabel("1.Fach: "); 
                JLabel label6 = new JLabel("2.Fach: ");
                
                JTextField Vorname = new JTextField(20);
                JTextField Nachname = new JTextField(20);
                JTextField Wohnort = new JTextField(20);
                JTextField Geburtsjahr = new JTextField(20);
                JTextField Fach1 = new JTextField(20);
                JTextField Fach2 = new JTextField(20);
                
                JButton setze = new JButton("Daten speichern");
                
                panel1.add(label1);
                panel1.add(Vorname);
                panel1.add(label2);
                panel1.add(Nachname);
                panel1.add(label3);
                panel1.add(Wohnort);
                panel1.add(label4);
                panel1.add(Geburtsjahr);
                panel1.add(label5);
                panel1.add(Fach1);
                panel1.add(label6);
                panel1.add(Fach2);
                panel1.add(setze);

                String LVornameE = Vorname.getText();
                
                String LNachnameE = Nachname.getText();
                
                String LWohnortE = Wohnort.getText();
                
                String LSGeburtsjahrE = Geburtsjahr.getText();
                int LIGeburtsjahrE = Integer.parseInt(LSGeburtsjahrE);
                Integer integerGeburtsjahrE = new Integer(LSGeburtsjahrE);
                
                String LSFach1E = Fach1.getText();
                int LIFach1E = Integer.parseInt(LSFach1E);
                Integer integerFach1E = new Integer(LSFach1E);
                
                String LSFach2E = Fach1.getText();
                int LIFach2E = Integer.parseInt(LSFach2E);
                Integer integerFach2E = new Integer(LSFach2E);
                
                frame1.add(panel1);
                frame1.setVisible(true);
            }
            
        });
        
        this.setze.addActionListener(new ActionListener() 
        {
            @Override
            public void actionPerformed(ActionEvent h)
            {
                String ScVornameE = Vorname.getText();
                
                String ScNachnameE = Nachname.getText();
                
                String ScWohnortE = Wohnort.getText();
                
                String ScSGeburtsjahrE = Geburtsjahr.getText();
                int ScIGeburtsjahrE = Integer.parseInt(ScSGeburtsjahrE);
                Integer integerGeburtsjahrE = new Integer(ScSGeburtsjahrE);
                
                String ScSJahrgangE = Jahrgang.getText();
                int ScIJahrgangE = Integer.parseInt(ScSJahrgangE);
                Integer integerJahrgangE = new Integer(ScSJahrgangE);
            }
        });
        
    }
    
    public static void main(String [] args)
    {
        new gui();
    }
}
 

javampir

Bekanntes Mitglied
Hi,
wär ganz nett, wenn du den Fehler posten würdest, dann wüsste man eher, wo man suchen muss.
Als erstes: Klassen sollte man groß schreiben, also public class Gui.
versuch mal, das this wegzumachen.
Und es ist ziemlich ungewöhnlich, das ActionEvent f zu nennen.
Also, ich habs jetzt nicht selbst ausgeführt. Fehlermeldung bitte!
javampir
 

aandroidd

Mitglied
Ich hab die Klasse mal in Gui umbenannt, aber das ist ja alles nur Formalität, zudem hab ich den Button "setze" auf "buttonspeichern" umdeklariert.

Die Fehlermeldung lautet: Java.lang.NullPointerException:
null

zu sehen auch auf folgendem Bild:
 

Anhänge

  • GUI Fehler.jpg
    GUI Fehler.jpg
    94 KB · Aufrufe: 36

java253

Mitglied
setze ist null in Zeile 181
In initComponents() fehlt
Java:
setze = new JButton("Setzen");

Variablen werden klein geschrieben in Java:
Java:
private JTextField vorname, nachname, wohnort, geburtsJahr, fach1, fach2, jahrgang;

Statt
Java:
this.getContentPane().add(this.buttonschueler);
kann man lesbarer schreiben:
Java:
add(buttonschueler);

Java:
Integer integerFach2E = new Integer(LSFach2E);
warum nicht int?


Wenn sich Quelltext wiederholt, macht es Sinn ihn auszulagern:
Java:
//...

buttonlehrer.addActionListener(new ActionListener(){
          @Override
           public void actionPerformed(ActionEvent evt){
                  new EingabeFrame();
           }
});

//...

class EingabeFrame extends JFrame{
         public EingabeFrame(){
                setSize(800, 600);
                setLocationRelativeTo(null);
                JPanel panel1 = new JPanel();
                panel1.setSize(250, 250);
                panel1.setLayout(new GridLayout(10,10));
               
                JLabel label1 = new JLabel("Vorname: ");
                JLabel label2 = new JLabel("Nachname: ");
                JLabel label3 = new JLabel("Wohnort: ");
                JLabel label4 = new JLabel("Geburtsjahr: ");
                JLabel label5 = new JLabel("Jahrgang: ");
               
                JTextField Vorname = new JTextField(20);
                JTextField Nachname = new JTextField(20);
                JTextField Wohnort = new JTextField(20);
                JTextField Geburtsjahr = new JTextField(20);
                JTextField Jahrgang = new JTextField(20);
               
                JButton setze = new JButton("Daten speichern");
               
                panel1.add(label1);
                panel1.add(Vorname);
                panel1.add(label2);
                panel1.add(Nachname);
                panel1.add(label3);
                panel1.add(Wohnort);
                panel1.add(label4);
                panel1.add(Geburtsjahr);
                panel1.add(label5);
                panel1.add(Jahrgang);
                panel1.add(setze);
               
                add(panel1);
               
                setVisible(true);
       }
}
 

aandroidd

Mitglied
Danke für die schnelle Antwort, ich ändere das morgen mal.

Ich bin eben im Bereich der GUI-Entwicklung ein Anfänger und muss mich deshalb zum Großteil auf Informationen aus dem dem Internet beziehen, wo ich dann eben nicht weiß ob es auch kürzer geht.

Nochmals ein großes Danke!


Und das mit dem Fach2 soll ein String sein, die Eingabe sollte nämlich in etwas "Deutsch", "Geschichte" oder ähnliches sein:)
 

Joose

Top Contributor
D
Ich bin eben im Bereich der GUI-Entwicklung ein Anfänger und muss mich deshalb zum Großteil auf Informationen aus dem dem Internet beziehen, wo ich dann eben nicht weiß ob es auch kürzer geht.

Deswegen einfach üben, mit Programmen mit einfacher GUI anfangen. Das Zusammenspiel mehrere Komponten in kurzen Beispielen testen.

Wenn du GUIs umfangreicher werden immer wieder mal ein BackUp machen (oder mit SVN oä arbeiten) und schauen wo du etwas vereinfachen kann => Reduzierung von Codewiederholungen.


Mit der Zeit wird das immer einfacher, logischer und man schreibt es dann gleich "richtig".
 

aandroidd

Mitglied
Danke für die Hilfe, es läuft soweit alles:)

Ich habe allerdings noch ein paar Fragen im weiteren Verlauf, kann ich jemanden von euch woanders erreichen, hier ist die Kommunikation vielleicht nicht die tollste, da meine Fragen dann neue Threads benötigen würden und ich nicht für jede Frage einen neuen Thread starten will?
Eine PN wäre nett:)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
C Swing JButton wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
M JButton wird von JTree überdeckt AWT, Swing, JavaFX & SWT 4
E JButton wird nicht (sofort) angezeigt AWT, Swing, JavaFX & SWT 3
B JButton wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
B JButton wird nicht dargestellt AWT, Swing, JavaFX & SWT 6
T JButton wird erst bei mouseover sichtbar AWT, Swing, JavaFX & SWT 2
B JButton Größe; Inhalt wird nicht angezeigt (.) AWT, Swing, JavaFX & SWT 4
G JButton mit importFiles-Funktion auf JDrawPane AWT, Swing, JavaFX & SWT 5
B JButton Search AWT, Swing, JavaFX & SWT 8
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
N Erlennen ob JButton gedrückt ist AWT, Swing, JavaFX & SWT 6
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Swing Kann man auf JButton zeichenen AWT, Swing, JavaFX & SWT 3
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
U Swing JButton mit Icon AWT, Swing, JavaFX & SWT 7
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
A Swing JButton mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 6
F Swing Scrollbare Liste von JButton AWT, Swing, JavaFX & SWT 4
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
A Swing JButton aussehen AWT, Swing, JavaFX & SWT 12
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
S Swing JButton verschwindet nach Compilieren AWT, Swing, JavaFX & SWT 8
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
J Thread kennt JButton nicht. AWT, Swing, JavaFX & SWT 11
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower Variable setzten mit JButton AWT, Swing, JavaFX & SWT 5
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
Joker4632 JButton nicht sichtbar, aber funktionsfähig AWT, Swing, JavaFX & SWT 8
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
D JButton per Tastenkombi auswählen AWT, Swing, JavaFX & SWT 2
K JButton nicht sichtbar machen für User 2 AWT, Swing, JavaFX & SWT 4
L Swing JButton soll link öffnen AWT, Swing, JavaFX & SWT 1
K JButton auf anderer Klasse AWT, Swing, JavaFX & SWT 6
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
B JButton -> Rahmen wegbekommen AWT, Swing, JavaFX & SWT 7
N JButton über benutzerdefinierte paintComponent setzen AWT, Swing, JavaFX & SWT 3
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
B JButton erscheint in JFrame, obwohl er diesem nicht zugeordnet wurde! AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
M Textfarbe JButton verändern AWT, Swing, JavaFX & SWT 2
N JButton ausblenden AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
stylegangsta Eigene Klasse für JButton aus dem JFrame abrufen AWT, Swing, JavaFX & SWT 29
stylegangsta MouseEvents aus JButton aufrufen AWT, Swing, JavaFX & SWT 3
stylegangsta JButton Transparent anzeigen AWT, Swing, JavaFX & SWT 9
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
S JButton-Label vergrößern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
L Array mit JButton, wie rausfinden auf welche JButton geklickt wurde + index des JButtons ausgeben AWT, Swing, JavaFX & SWT 4
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
L JButton mit Image AWT, Swing, JavaFX & SWT 5
fLooojava JButton [Focus) AWT, Swing, JavaFX & SWT 4
M JButton - Listener AWT, Swing, JavaFX & SWT 1
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
1 JButton nach Klick ausblenden AWT, Swing, JavaFX & SWT 6
X Swing 1 JButton bedeckt meine ganze Frame aber Warum? AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
J JButton neu zeichnen lassen AWT, Swing, JavaFX & SWT 9
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
J vocab1 = new JButton(""+voc1.get(nr).toString()+""); AWT, Swing, JavaFX & SWT 16
BRoll JButton Text nicht ausblenden ("...") AWT, Swing, JavaFX & SWT 2
I JFrame mit JButton schließen? AWT, Swing, JavaFX & SWT 0
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
J Swing JFrame slideout, wenn JButton gedrückt wurde AWT, Swing, JavaFX & SWT 0
S Swing Rückmeldung für JButton AWT, Swing, JavaFX & SWT 4
R AWT JLabel oder JButton aktualisieren AWT, Swing, JavaFX & SWT 1
L JButton im Frame fest verankern AWT, Swing, JavaFX & SWT 0
M Swing Mix JComboBox - JButton? AWT, Swing, JavaFX & SWT 6
U Event Handling JButton Actionevent: starte Spiel AWT, Swing, JavaFX & SWT 4
E JButton füllt ganzes JPanel auf AWT, Swing, JavaFX & SWT 6
P Verbuggte custom JButton unter Windows AWT, Swing, JavaFX & SWT 9
W Swing JButton lässt sich nicht anzeigen AWT, Swing, JavaFX & SWT 8
Kandum Swing JButton - onclick -> Grafikfehler AWT, Swing, JavaFX & SWT 2
R JButton durch Enter auslösen AWT, Swing, JavaFX & SWT 7
T Swing JButton per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben