GELÖST java error beim buttonklick

Diskutiere java error beim buttonklick im Programmierung Forum im Bereich Software Forum; hallo zusammen, ich probiere mich gerade an der programmierung von benutzeroberflächen in blueJ (java). ich habe ein panel erstellt mit u.a...
L

lukilas

Threadstarter
Mitglied seit
23.07.2011
Beiträge
37
hallo zusammen,

ich probiere mich gerade an der programmierung von benutzeroberflächen in blueJ (java). ich habe ein panel erstellt mit u.a. einem Button. für den button habe ich dann einen actionListener hinzugefügt, auf knopfdruck soll dann eine Methode aufgerufen werden. Das ganze sieht so aus:

berechnen() ist die methode, die aufgerufen werden soll (ist weiter unten deklariert).
Code:
JButton buttonOK = new JButton("OK");
        buttonOK.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                berechnen();
            }
        });
jetzt erhalte ich allerdings beim buttonklick den java.lang.NullPointerException error.

hier die vollständige fehlermeldung:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at TicketGUI.berechnen(TicketGUI.java:99)
	at TicketGUI$1.actionPerformed(TicketGUI.java:71)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6504)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6269)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4860)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
kann mir jemand helfen? THX
 
Quant

Quant

Mitglied seit
19.07.2011
Beiträge
67
Bist du sicher, dass der Fehler in dem fraglichen von dir geposteten Code-Abschnitt auftritt? Folgender TestCode von mir funktioniert nämlich einwandfrei und ich sehe keinen Unterschied zu deiner Implementierung in den fraglichen Codeabschnitten

Code:
package myswingtest;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JButton;

public class mySwingTest extends JFrame
{
    public mySwingTest()
    {
        super("mySwingTest");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(100, 100);
        this.setVisible(true);
        
        JButton mybtn = new JButton("OK");
        this.add(mybtn);
        mybtn.addActionListener(new ActionListener()
                {
                    @Override
                    public void actionPerformed(ActionEvent e)
                    {
                        System.out.println("Berechnen!");
                    }
                });
    }
    
    public static void main(String[] args)
    {
        new mySwingTest();
    }
}
 
L

lukilas

Threadstarter
Mitglied seit
23.07.2011
Beiträge
37
wenn ich anstatt der methode ein system.out.println mache geht es auch. das problem scheint bei der Methode zu liegen.

Code:
public void berechnen(){
        switch (comboVerbindung.getSelectedIndex()) {
            case 0:{
                Verbindungspreis = 10;
                break;
            }
            case 1:{
                Verbindungspreis = 10;
                break;
            }
            case 2:{
                Verbindungspreis = 10;
                break;
            }
            case 3:{
                Verbindungspreis = 10;
                break;
            }
            case 4:{
                Verbindungspreis = 30;
                break;
            }
            case 5:{
                Verbindungspreis = 30;
                break;
            }
            case 6:{
                Verbindungspreis = 30;
                break;
            }
            case 7:{
                Verbindungspreis = 30;
                break;
            }
            case 8:{
                Verbindungspreis = 30;
                break;
            }
            case 9:{
                Verbindungspreis = 30;
                break;
            }
        }
        switch (comboKlasse.getSelectedIndex()) {
            case 0:{
                Klassenpreis = 0;
                break;
            }
            case 1:{
                Klassenpreis = 5;
                break;
            }
        }
        
        TicketAnzahl = comboAnzahl.getSelectedIndex() + 1;
        Gesamtpreis = (Klassenpreis + Verbindungspreis) * TicketAnzahl;
        if(checkBahncard.isSelected() == true){
            Gesamtpreis /= 2;
        }
        JLabel labelBezahlen = new JLabel("Bitte bezahlen sie " + Gesamtpreis + "€.");
        JTextField textBetrag = new JTextField();
        JButton buttonOK2 = new JButton("OK");
        panel.add(labelBezahlen);
        panel.add(textBetrag);
        panel.add(new JLabel(" "));
        panel.add(buttonOK2);
        pack();
    }
das ist die methode, die aufgerufen wird. kannst du da was erkennen?
 
Quant

Quant

Mitglied seit
19.07.2011
Beiträge
67
Ganz spontan, comboVerbindung ist schon initalisiert worden oder?

Sonst sehe ich nichts auf den ersten Blick, was einen NullPointerException auslößen kann!
 
L

lukilas

Threadstarter
Mitglied seit
23.07.2011
Beiträge
37
so, ich hab den fehler gefunden! comboVerbindung ist zweimal deklariert worden: in der klasse und bei der initalisierung im konstruktor als lokale variable. Die Methode hat aber auf die Klassenvariable zugegriffen, die noch nicht initalisiert war.

ich hab dann einfach bei der initalisierung das JComboBox vor der Zuweisung weggelassen und es ging wieder (ich dachte vorher es würde keinen Unterschied machen ob das davor steht oder nicht, aber es wird ja eine ganz neue variable deklariert wenn das davor steht).

Danke für deine Hilfe, LG lukilas
 
Thema:

java error beim buttonklick

java error beim buttonklick - Ähnliche Themen

  • GELÖST TV-Browser und portable Java

    GELÖST TV-Browser und portable Java: Lange hat es ja schon gehalten: Klick Die neuste Version vom TV-Browser , ich nutze hier Version für transportable Medien (Download, falls jemand...
  • Bei Mojang Minecraft Java gekauft, wie spiele ich jetzt Windows 10 Minecraft?

    Bei Mojang Minecraft Java gekauft, wie spiele ich jetzt Windows 10 Minecraft?: Hey ich habe mir über Mojang Minecraft gekauft und wollte nun mit einem Freund spielen, dazu benötige ich die windows 10 version, muss ich sie mir...
  • JAVA Skrip Error...

    JAVA Skrip Error...: Wie kann ich diese Fehlermeldung beheben auf Windows 8.1 ???
  • ich will ein Blatt Drucken aus Sudoku, es wird immer gemeldet, Java script ist deaktiviert , wie gehe ich vor ?

    ich will ein Blatt Drucken aus Sudoku, es wird immer gemeldet, Java script ist deaktiviert , wie gehe ich vor ?: ich will ein Blatt Drucken aus Sudoku, es wird immer gemeldet, Java script ist deaktiviert , wie gehe ich vor ?
  • Wie aktiviert man Java-Script, wenn Software nicht vorhanden?

    Wie aktiviert man Java-Script, wenn Software nicht vorhanden?: Wie aktiviert man Java-Script, wenn Software nicht vorhanden?
  • Ähnliche Themen

    Oben