JRadioButton wechsel gibt NullPointerException

BeefBull

Mitglied
Moin. Ich mache gerade ein Youtube-Tutorial nach und obwohl wie ich meine ich alles genauso nachgemacht habe, wirft bei mir das Programm eine NullPointerException, wenn ich in dem erzeugten Fenster einen anderen Radioknopf drücke. Hier ist der Quelltext der GUI-Klasse (die main-Klasse erzeugt nur das Fenster, setzt die Schließungsoperation und Größe und macht es sichtbar):

Java:
package JRadioButton;

// JRadioButton: so aehnlich wie JCheckBox, aber man kann nur
// einen gleichzeitig auswaehlen (wie in alten Autoradios)

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

public class GUI extends JFrame
{
    private JTextField txt1;
    
    private Font plainfont;
    private Font boldfont;
    private Font italicfont;
    private Font bolditalicfont;
    
    private JRadioButton plainbutton;
    private JRadioButton boldbutton;
    private JRadioButton italicbutton;
    private JRadioButton bolditalicbutton;
    
    private ButtonGroup knopfgruppe;
    
    public GUI()
    {
        super("Tolles Programm v0.1");
        setLayout(new FlowLayout());
        
        JTextField txt1 = new JTextField("Eingabetext", 20);
        add(txt1);
        
        plainbutton = new JRadioButton("plain", true); //nur einer kann true sein
        boldbutton = new JRadioButton("bold", false);
        italicbutton = new JRadioButton("italic", false);
        bolditalicbutton = new JRadioButton("bold + italic", false);
        add(plainbutton);
        add(boldbutton);
        add(italicbutton);
        add(bolditalicbutton);
        
        knopfgruppe = new ButtonGroup();
        knopfgruppe.add(plainbutton);
        knopfgruppe.add(boldbutton);
        knopfgruppe.add(italicbutton);
        knopfgruppe.add(bolditalicbutton);
        
        plainfont = new Font("Serif", Font.PLAIN, 14);
        boldfont = new Font("Serif", Font.BOLD, 14);
        italicfont = new Font("Serif", Font.ITALIC, 14);
        bolditalicfont = new Font("Serif", Font.BOLD + Font.ITALIC, 14);

        txt1.setFont(plainfont);
        
        plainbutton.addItemListener(new HandlerClass(plainfont));
        boldbutton.addItemListener(new HandlerClass(boldfont));
        italicbutton.addItemListener(new HandlerClass(italicfont));
        bolditalicbutton.addItemListener(new HandlerClass(bolditalicfont));

    }

    private class HandlerClass implements ItemListener
    {
        private Font font;
        
        public HandlerClass(Font fontarg)
        {
            font = fontarg;
        }
        
        @Override
        public void itemStateChanged(ItemEvent event)
        {
            txt1.setFont(font);
        }
        
    }

}

Der Debugger in eclipse markiert dabei die Stelle txt1.setFont(font); grün, aber ich sehe da den Fehler nicht. font wird doch bei jedem Handler-Objekt-Erzeugen vom Konstruktor initialisiert und beim Aufruf der Methode sollte es das Textfeld txt1 aus der umhüllenden Klasse entsprechend ändern. Wo ist das Problem? Hier die Fehler:

Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at JRadioButton.GUI$HandlerClass.itemStateChanged(GUI.java:75)
	at javax.swing.AbstractButton.fireItemStateChanged(AbstractButton.java:2056)
	at javax.swing.AbstractButton$Handler.itemStateChanged(AbstractButton.java:2358)
	at javax.swing.DefaultButtonModel.fireItemStateChanged(DefaultButtonModel.java:440)
	at javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton.java:255)
	at javax.swing.ButtonGroup.setSelected(ButtonGroup.java:145)
	at javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton.java:237)
	at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:272)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6414)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
	at java.awt.Component.processEvent(Component.java:6179)
	at java.awt.Container.processEvent(Container.java:2084)
	at java.awt.Component.dispatchEventImpl(Component.java:4776)
	at java.awt.Container.dispatchEventImpl(Container.java:2142)
	at java.awt.Component.dispatchEvent(Component.java:4604)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4279)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
	at java.awt.Container.dispatchEventImpl(Container.java:2128)
	at java.awt.Window.dispatchEventImpl(Window.java:2492)
	at java.awt.Component.dispatchEvent(Component.java:4604)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
	at java.awt.EventQueue.access$400(EventQueue.java:82)
	at java.awt.EventQueue$2.run(EventQueue.java:676)
	at java.awt.EventQueue$2.run(EventQueue.java:674)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:690)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
 
Zuletzt bearbeitet:

Jagson

Mitglied
Wird denn ein Objekt von der Klasse HandlerClass erstellt?

Ich sehe zu mindestens keine Deklarierung.
 
Zuletzt bearbeitet:

BeefBull

Mitglied
Wird denn ein Objekt von der Klasse HandlerClass erstellt?

Ich sehe zu mindestens keine Deklarierung.

Wird denn nicht in dem Konstruktor der Oberklasse für jede der Button-Sorten ein anonymes Handler Objekt (mit jeweils unterschiedlichem font als actual parameter uebergeben) erzeugt und ge-added?

Der Absturz kommt übrigens beim Wechsel der Radio-Buttons, nicht beim Erzeugen des Fensters.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JRadioButton verknüpfen Java Basics - Anfänger-Themen 1
M Verbesserung für JRadioButton Java Basics - Anfänger-Themen 10
D JRadiobutton reagiert nicht wie gewünscht Java Basics - Anfänger-Themen 3
J 19% Aufschlag per JRadioButton Java Basics - Anfänger-Themen 2
J Probleme beim JRadioButton Java Basics - Anfänger-Themen 2
M JRadioButton Java Basics - Anfänger-Themen 4
J JRadioButton in JTable setzen Java Basics - Anfänger-Themen 4
M GUI - Toggle JRadioButton? Java Basics - Anfänger-Themen 2
A JRadioButton Java Basics - Anfänger-Themen 6
C JSlider und JRadioButton auf Label anzeigen? Java Basics - Anfänger-Themen 10
M JRadioButton keine Instanz von ButtonModel Java Basics - Anfänger-Themen 10
Das Brot Nach .add(JRadioButton) funktioniert der KeyListener nicht mehr Java Basics - Anfänger-Themen 2
H JRadioButton steuert Checkbox Java Basics - Anfänger-Themen 5
S JRadioButton - Wert setzen aus Datenbank Java Basics - Anfänger-Themen 4
A JRadioButton aus Code heraus selectieren. Java Basics - Anfänger-Themen 4
I Unerklärliche Null-Pointer-Exception bei JRadioButton Array Java Basics - Anfänger-Themen 2
O JRadioButton's - Einen aktivieren/ Rest deaktivieren Java Basics - Anfänger-Themen 5
G JRadioButton Objekte zugehörig zu welcher buttongroup Java Basics - Anfänger-Themen 3
H Die Schriftfarbe des JRadioButton festlegen Java Basics - Anfänger-Themen 2
G Zeichen in JRadioButton ersetzen Java Basics - Anfänger-Themen 3
G Status von JRadioButton Java Basics - Anfänger-Themen 5
G JRadioButton Java Basics - Anfänger-Themen 4
T alle JRadioButton deaktivieren Java Basics - Anfänger-Themen 8
DeeDee0815 JRadioButton, actionPerformed und Textfelder Java Basics - Anfänger-Themen 2
P JRadioButton der ButtonGroup nicht sichtbar ? Java Basics - Anfänger-Themen 2
G JSpinner als JRadioButton? Java Basics - Anfänger-Themen 3
X JRadioButton isEnabled() ? Java Basics - Anfänger-Themen 2
J get Methode(boolean) JRadiobutton? Java Basics - Anfänger-Themen 2
H JButton - Wechsel der Textfarbe alle 500ms Java Basics - Anfänger-Themen 10
J Interface Wechsel in den Windows7-Basis Modus Java Basics - Anfänger-Themen 7
S String ab dem Wechsel Buchstaben zu Zahlen splitten Java Basics - Anfänger-Themen 14
S Erste Schritte TAB-Wechsel zwischen TextFields Java Basics - Anfänger-Themen 1
3 Klassen Wechsel der Ansichten in einer GUI Java Basics - Anfänger-Themen 2
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
F Probleme nach dem Wechsel von Eclipse zu NetBeans Java Basics - Anfänger-Themen 15
T String splitten beim wechsel vom buchstabe zu zahl! Java Basics - Anfänger-Themen 8
Binary.Coder Wechsel von BlueJ zu Eclipse Java Basics - Anfänger-Themen 7
T vorzeichen wechsel bei int Java Basics - Anfänger-Themen 10
H JTabbedPane: Tab-Wechsel unterbinden ? Java Basics - Anfänger-Themen 6
M Tabbed Pane wechsel via HotKey Java Basics - Anfänger-Themen 10
D wechsel des aktuellen spielers Java Basics - Anfänger-Themen 2
N Anzahl von Zahlen-wechsel im Vector Java Basics - Anfänger-Themen 2
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
N Gibt es hierfür einen Shortcut Java Basics - Anfänger-Themen 5
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
G Input/Output getText() gibt keinen Wert! Java Basics - Anfänger-Themen 13
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
S Gibt es ein simples JWebbrowser Element? Java Basics - Anfänger-Themen 6
S Gibt es irgendeine Möglichkeit, dies zu tun?(Android Studio) Java Basics - Anfänger-Themen 1
S Gibt es sowas (JSpinner)? Java Basics - Anfänger-Themen 9
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
J Erste Schritte Gibt es setMantisse? Java Basics - Anfänger-Themen 7
J Vektoren Add gibt nicht das aus was es sollte Java Basics - Anfänger-Themen 3
S Gibt es einen guten kostenlosen Online-kurs Java Basics - Anfänger-Themen 2
D Warum gibt mir das Programm nicht den Array invertiert an ? Java Basics - Anfänger-Themen 1
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
S Gibt es für die Klasse HashMap Generic Implementierungen? Java Basics - Anfänger-Themen 11
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
L Methoden Rekursion gibt alten Wert wieder Java Basics - Anfänger-Themen 37
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
E Gibt es in Java Properties (wie in C#) Java Basics - Anfänger-Themen 6
R Gibt es Eine einfache Programierung dieser Methoden Java Basics - Anfänger-Themen 8
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
B Wieso gibt er hier nur die ungeraden Zahlen aus? Java Basics - Anfänger-Themen 5
B Wieso gibt das Programm in der Console kein Ergebnis aus? Java Basics - Anfänger-Themen 2
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
JavaNewbie2.0 Gibt meiner Meinung etwas falsches aus. Java Basics - Anfänger-Themen 7
S Ausgabe gibt nur Arrayadresse aus... Java Basics - Anfänger-Themen 4
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
Tommy Nightmare void Methode gibt Array zurück Java Basics - Anfänger-Themen 3
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
OlafHD Gibt es einen Laufbalken? Java Basics - Anfänger-Themen 2
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
G Input/Output InputStream gibt nicht die Korrekten Werte aus Java Basics - Anfänger-Themen 10
W IllegalArgumentException gibt nichts aus Java Basics - Anfänger-Themen 2
K Programm gibt nichts aus? Java Basics - Anfänger-Themen 2
M Erste Schritte Wie speichert und gibt man Arrays aus? (JLabel) Java Basics - Anfänger-Themen 12
B gibt es ein Stundenplan-Algorithmus? Java Basics - Anfänger-Themen 11
G Konsole gibt "alte" sachen aus Java Basics - Anfänger-Themen 3
J while(nst == 0) gibt Fehlermeldung Java Basics - Anfänger-Themen 4
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
F Java-Programm gibt in Eingabeaufforderung nichts aus Java Basics - Anfänger-Themen 4
T Konsole gibt nicht das Gewünschte aus Java Basics - Anfänger-Themen 5
T Input/Output GregorianCalender gibt falsch aus? Java Basics - Anfänger-Themen 4
C OOP Erstellen eigener Objekte die es schon gibt "schlau"? Java Basics - Anfänger-Themen 3
I beim auslesen der Properties gibt es ein Fehler Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben