NullPointerException bei getSelectedItem

Status
Nicht offen für weitere Antworten.
J

Jens

Gast
Blutiger Anfänger bittet dringend um Hilfe!!

Ich möchte den aktuellen Wert ein JComboBox auslesen.
Code:
JComboBox cbJahrKS = new JComboBox();
    cbJahrKS.addItem("1999");
    cbJahrKS.addItem("2000");
    cbJahrKS.addItem("2001");
    cbJahrKS.addItem("2002");
    cbJahrKS.addItem("2003");
    cbJahrKS.addItem("Alle");
Aufrufen möchte ich das im ActionListener, d.h. auf Reaktion eines Buttons möchte ich mehrer Methoden starten.
Code:
if(cbJahrKS.getSelectedItem().toString().equals("1999")){}
Ich bekomme aber immer eine NullPointerException!!??


Danke

Jens



Edit von L-ectron-X: Code-Tags eingefügt.
 

bummerland

Top Contributor
ich würde sagen, die bekommst du, wenn kein item ausgewählt ist. du musst vorher prüfen, ob es null ist.
 
B

bygones

Gast
es ist immer das erste item ausgewählt und wenn das nicht explizit null ist sollte keine Exception geworfen werden, daher behaupte ich der Fehler tritt woanders auf.

ich würde aber generell so vergleichen:

Code:
if("1999".equals(cbJahrKS.getSelectedItem())) {
	System.out.println("1999");
}
falls cbJahrKS.getSelectedItem() doch null sein sollte wird in diesem Fall keine Exception geworfen, die bedingung ist dann false
 
B

bygones

Gast
poste mal den code dazu.

Kann es sein dass cbJahrKS eine Instanzvariable der Klasse ist du aber eine lokale Variable cbJahrKS beim füllen verwendest ? dann steigt er aus weil im ActionListener cbJahrKS null ist....

Um mehr sagen zu können wird Code benötigt
 
J

Jens

Gast
Ich muß dazu sagen, dass das nicht das einzigste Problem ist was ich habe!!
Die Kunden ComboBox mit dem Array tab füllen geht auch nicht. Auch NPE.
Und er über nimmt das string Array nicht als Paramter für die Methoden

Code:
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
/**
 * Sample application using Frame.
 *
 * @author Wolfgang Hackenbroch
 * @version 1.00 04/05/22
 */
public class DBCockpitFrame extends JFrame implements ActionListener, AdjustmentListener  {



	public DBQuery myDBQuery;
	public ParameterFeld myParameter;
	public ParameterFeld myParameterKU;
  	public JComboBox cbKunde;
	public JComboBox cbJahrKS;
	public JComboBox cbJahrUS;
	public JScrollBar sbEast;
	public String [] stringArray;   
  // Konstruktor (teilweise vom JCreator erzeugt)
	public DBCockpitFrame() throws Exception{

    MenuBar menuBar = new MenuBar();
    Menu menuFile = new Menu();
    MenuItem menuFileExit = new MenuItem();

    menuFile.setLabel("File");
    menuFileExit.setLabel("Exit");

    // Add action listener.for the menu button
    menuFileExit.addActionListener
    (
        new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                DBCockpitFrame.this.windowClosed();
            }
        }
    );
    menuFile.add(menuFileExit);
    menuBar.add(menuFile);

    setTitle("DBCockpit");
    setMenuBar(menuBar);
    setSize(new Dimension(800, 400));

    // Add window listener.
    this.addWindowListener
    (
        new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                DBCockpitFrame.this.windowClosed();
            }
        }
    );

    // ********************************************************************
    // Eigener Code zur Erzeugung des GUIs ab hier
    // ********************************************************************
		
		// Panel für den oberen Bereich des Frames (2 Spalten)
    JPanel jpOben = new JPanel(new GridLayout(0,2));

		// Panel für die Unternehmenssicht
    JPanel jpUS  = new JPanel(new BorderLayout(10, 10));
    jpUS.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));

    // Parameter-Feld aus Fallstudie 1 wird hier wiederverwendet
    ParameterFeld myParameter = new ParameterFeld();
    jpUS.add(new JLabel("Unternehmenssicht"), BorderLayout.NORTH);
    jpUS.add(new JLabel("<Visualisierung>"), BorderLayout.WEST);
    jpUS.add(myParameter, BorderLayout.CENTER);

		// Panel für die Kundensicht
    JPanel jpKS  = new JPanel(new BorderLayout(10, 10));
    jpKS.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));

    // Parameter-Feld für die Kundensicht erzeugen
    ParameterFeld myParameterKU = new ParameterFeld();
    jpKS.add(new JLabel("Kundensicht"), BorderLayout.NORTH);
    jpKS.add(new JLabel("<Visualisierung>"), BorderLayout.WEST);
    jpKS.add(myParameterKU, BorderLayout.CENTER);

		// Beide Panels zusammenfügen
    jpOben.add(jpKS);
    jpOben.add(jpUS);

		// Panel für den unteren Bereich des Frames (4 Spalten)
    JPanel jpUnten  = new JPanel(new GridLayout(0,4));

		// Comboboxen für die Auswahl erzeugen 
		// (die Comboboxen müssen noch mit den korrekten Werten gefüllt werden!)
		
	JComboBox cbKunde = new JComboBox();    
    
    //Erzeugen einer ScrollBar zur Auswahl
    sbEast = new JScrollBar(JScrollBar.VERTICAL, 0, 3, 0, 255);
    sbEast.addAdjustmentListener(this);
    cbKunde.add(sbEast, BorderLayout.EAST);
    
    JComboBox cbJahrKS = new JComboBox();
    cbJahrKS.addItem("1999");
    cbJahrKS.addItem("2000");
    cbJahrKS.addItem("2001");
    cbJahrKS.addItem("2002");
    cbJahrKS.addItem("2003");
    cbJahrKS.addItem("Alle");
    
    
    JComboBox cbJahrUS = new JComboBox();
    cbJahrUS.addItem("1999");
    cbJahrUS.addItem("2000");
    cbJahrUS.addItem("2001");
    cbJahrUS.addItem("2002");
    cbJahrUS.addItem("2003");
    cbJahrUS.addItem("Alle");

		// 3 Panels für Auswahl Kunde, Jahr (Kunde) und Jahr (Unternehmen)
    JPanel jpKunde = new JPanel();
    jpKunde.add(new JLabel("Kunde: "));
    jpKunde.add(cbKunde);
    jpUnten.add(jpKunde);

    JPanel jpJahr = new JPanel();
    jpJahr.add(new JLabel("Jahr: "));
    jpJahr.add(cbJahrKS);
    jpUnten.add(jpJahr);
    
    JPanel jpUnternehmen = new JPanel();
    jpUnternehmen.add(new JLabel("Jahr: "));
    jpUnternehmen.add(cbJahrUS);
    jpUnten.add(jpUnternehmen);
    
    // Panel für die 3 Buttons anlegen
    JPanel jpButtons = new JPanel(new GridLayout(3,0));

		// Buttons erzeugen
    JButton buConnect = new JButton("DB Verbinden");
    buConnect.setActionCommand("A");
    buConnect.addActionListener(this);
    jpButtons.add(buConnect);

    JButton buClose = new JButton("DB Schließen");
    buClose.setActionCommand("B");
    buClose.addActionListener(this);
    jpButtons.add(buClose);

		JButton buAbfrage = new JButton("Summe Prämien");
    buAbfrage.setActionCommand("P");
    buAbfrage.addActionListener(this);
    jpButtons.add(buAbfrage);

		// Button Panel hinzufügen
    jpUnten.add(jpButtons);

    // Hauptframe füllen mit den 3 Hauptelementen der Application
    this.getContentPane().add(jpOben, BorderLayout.CENTER);
    this.getContentPane().add(jpUnten, BorderLayout.SOUTH); // Default
		this.getRootPane().setDefaultButton(buConnect);
	
		
	}


	// ********************************************************************
  // Hier findet das Eventhandling statt
  // ********************************************************************  
  public void actionPerformed(ActionEvent e) {

		// Button "DB Verbinden"
    if(e.getActionCommand().equals("A")) {
      try {

				// Entsprechende Methoden aus der Datenschicht aufrufen
        myDBQuery = new DBQuery();
        myDBQuery.testCon();
        myDBQuery.befuelleArray();
        for(int i=0;i<238;i++) {
    
			cbKunde.addItem("Hirsch"); //(String)myDBQuery.tab[i]
        }
    	
		cbKunde.setSelectedIndex(0);
        
      }
      
      catch (Exception exc) {

				exc.printStackTrace();
			}
		}

		// Button "DB Schließen"
    if(e.getActionCommand().equals("B")) {
      try {

				// Entsprechende Methoden aus der Datenschicht aufrufen
        myDBQuery.closeCon();
      }
      catch (Exception exc) {

      	exc.printStackTrace();
			}
		}
	if (e.getActionCommand().equals("P")) {
		try{
		
		
		
		
		String s = "Annemarie Mangold"; //Auslesen aus ComboBox
	    StringTokenizer st = new StringTokenizer(s);
        String [] stringArray =new String[2];
	    int i=0;
	    while (st.hasMoreTokens()) {
	    	stringArray[i++] = st.nextToken();	
		System.out.println(stringArray[0]);
		// If Verzweigung für ComboBox auslesen.
		
		double sumpra;
		sumpra = myDBQuery.berechneSummeBeitragseinzahlungenAlle((String)stringArray[0], (String)stringArray[1]);
		System.out.println(sumpra);
		myParameter.setInput(0, "Summe Prämien"); 
		myParameter.setRendite(sumpra);
		
				}
		if(cbJahrKS.getSelectedItem().toString().equals("1999")){
	
		double sumprajahr;
		sumprajahr = myDBQuery.berechneSummeBeitragseinzahlungenJahr(stringArray[0],stringArray[1], 1999 );
		System.out.println(sumprajahr);
		
		double sumschajahr;
		sumschajahr = myDBQuery.berechneSummeSchadenJahr(stringArray[0],stringArray[1], 1999 );
		System.out.println(sumschajahr);

....
 
B

bygones

Gast
also wegen cbJahrKS; war meine Vermutung richtig:

du hast eine Instanzvariable
Code:
public JComboBox cbJahrKS;
beim instanzieren aber schreibst du
Code:
 JComboBox cbJahrKS = new JComboBox();
cbJahrKS.addItem("1999");
cbJahrKS.addItem("2000");
d.h. hier wird nicht deine instanzvariable initialisert sondern eine lokale Variable. Daher bleibt deine Instanzvariable null und verursacht den fehler !

also schreiben:
Code:
 cbJahrKS = new JComboBox();
cbJahrKS.addItem("1999");
cbJahrKS.addItem("2000");
 
G

Guest

Gast
Danke, es funktioniert!!!! Du hast einem BWL Student der nicht so richtig die Ahnung hat echt geholfen!!!! :D
 
B

bygones

Gast
Anonymous hat gesagt.:
Danke, es funktioniert!!!! Du hast einem BWL Student der nicht so richtig die Ahnung hat echt geholfen!!!! :D
Shit - hättest das vorher mit BWL gesagt hätte ich nicht geholfen :wink: :roll: *ironie*
 

KSG9|sebastian

Top Contributor
Ach ja, noch ein paar Tipps:

1) HÖR AUF ALLE VARIABLEN PUBLIC ZU DEKLARIEREN *grins*
2) schreib bitte nicht alles in den Konstruktor, dass sieht nicht schön aus und ist nich zweckmäßig
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Objekte vom MainController in anderen Controller verwenden und andersherum (NullPointerException) AWT, Swing, JavaFX & SWT 14
Jose05 Nullpointerexception bei toArray() AWT, Swing, JavaFX & SWT 9
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
N Nur bei einem Textfiled Nullpointerexception bei getText() AWT, Swing, JavaFX & SWT 1
R NullPointerException beim Start des Fensters AWT, Swing, JavaFX & SWT 1
D JavaFX Nullpointerexception wegen TableView AWT, Swing, JavaFX & SWT 2
ZH1896ZH JavaFX kann NullPointerException nicht auflösen... :( AWT, Swing, JavaFX & SWT 3
M NullPointerException / Controller AWT, Swing, JavaFX & SWT 4
R Swing Java9 NullPointerException bei JComboBox AWT, Swing, JavaFX & SWT 13
L java.lang.NullPointerException - Fehlermeldung AWT, Swing, JavaFX & SWT 2
M NullPointerException bei Übergabe eines RadioButtons AWT, Swing, JavaFX & SWT 11
zhermann NullPointerException bei Label.setText() AWT, Swing, JavaFX & SWT 5
it_is_all jLabel.setText -> Char in Str: NullpointerException AWT, Swing, JavaFX & SWT 1
D NullPointerException observableList AWT, Swing, JavaFX & SWT 4
J NullPointerException bei getText() AWT, Swing, JavaFX & SWT 3
S JavaFX NullPointerException bei Versuch ImageView zu ändern AWT, Swing, JavaFX & SWT 1
K JFileChooser NullPointerException AWT, Swing, JavaFX & SWT 7
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
S Swing [CLOSED] NullPointerException bei BorderLayout() AWT, Swing, JavaFX & SWT 8
G Swing NullPointerException und JXImageView AWT, Swing, JavaFX & SWT 4
L exception in thread awt-eventqueue-0 java.lang.nullpointerexception AWT, Swing, JavaFX & SWT 2
U Swing NullPointerException trotz Referenz auf Textfield & Button AWT, Swing, JavaFX & SWT 6
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
K JavaFX Pfad öffen NullPointerException AWT, Swing, JavaFX & SWT 4
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
L Event Handling windowAdapter - NullPointerException beim Schließen AWT, Swing, JavaFX & SWT 5
J JTable verursacht NullPointerException.Ratlos. AWT, Swing, JavaFX & SWT 5
C JButton NullPointerException AWT, Swing, JavaFX & SWT 2
Q getGraphics() - NullPointerException AWT, Swing, JavaFX & SWT 8
C NullPointerException im MVC Muster AWT, Swing, JavaFX & SWT 9
V Nullpointerexception (etwas mit thread und jframe) AWT, Swing, JavaFX & SWT 3
M JTable Drucken NullpointerException +JTable speichern AWT, Swing, JavaFX & SWT 6
T Swing Laden eines Icons auf JButton liefert NullPointerException AWT, Swing, JavaFX & SWT 8
M Exception in thread "Thread-3" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 18
C Swing NullPointerException beim Hinzufügen von Checkboxes in eine ArrayList AWT, Swing, JavaFX & SWT 5
1 JComponent -> java.lang.NullPointerException AWT, Swing, JavaFX & SWT 13
B Swing NullPointerException bei actionPerformed() AWT, Swing, JavaFX & SWT 2
E java.lang.NullPointerException AWT, Swing, JavaFX & SWT 14
R NullPointerException AWT, Swing, JavaFX & SWT 16
xehpuk Swing NullPointerException: Random-Instanz anfangs nicht initialisiert AWT, Swing, JavaFX & SWT 4
3 Swing NullPointerException in AW Event-0? AWT, Swing, JavaFX & SWT 5
C SWT NullPointerException AWT, Swing, JavaFX & SWT 12
J NullPointerException bei Benutzung vom TableCellRenderer AWT, Swing, JavaFX & SWT 3
A AWT Methodenaufruf "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 4
X NullPointerException beim Einfügen einer JMenuBar AWT, Swing, JavaFX & SWT 4
B NullPointerException bei JFrame AWT, Swing, JavaFX & SWT 2
D JPanel / NullPointerException AWT, Swing, JavaFX & SWT 4
G LookAndFeel Dynamisches Einlesen von LookAndFeels - NullPointerException AWT, Swing, JavaFX & SWT 4
E Login wird durch NullPointerException abgebrochen AWT, Swing, JavaFX & SWT 10
K NullPointerException ohne CodeLink AWT, Swing, JavaFX & SWT 6
L NullPointerException JFreeChart AWT, Swing, JavaFX & SWT 10
F NullPointerException - HILFE!! AWT, Swing, JavaFX & SWT 20
martinyyyy AWT Parameter erzeugen NullpointerException obwohl sie vorhanden sind? AWT, Swing, JavaFX & SWT 4
H Swing NullPointerException in JTable bei vielen Einträgen AWT, Swing, JavaFX & SWT 2
S Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 7
S NullPointerException bei JFileChooser AWT, Swing, JavaFX & SWT 8
X JList Probleme mit NullPointerException AWT, Swing, JavaFX & SWT 3
S NullPointerException bei Aufruf von updateUI() beim JFrame AWT, Swing, JavaFX & SWT 12
Z NullPointerException bei SplashScreen AWT, Swing, JavaFX & SWT 5
C NullPointerException bei Doppelpufferung AWT, Swing, JavaFX & SWT 3
F CardLayout.show() -> NullPointerException AWT, Swing, JavaFX & SWT 4
B NullPointerException bei String vergleich AWT, Swing, JavaFX & SWT 5
K NullPointerException bei JTextField AWT, Swing, JavaFX & SWT 8
L Problem mit "NullPointerException" bei grafischer AWT, Swing, JavaFX & SWT 3
D bei Thread in JComponent malen NullPointerException AWT, Swing, JavaFX & SWT 3
loadbrain JTextFields & java.lang.NullPointerException AWT, Swing, JavaFX & SWT 2
F JProgressBar und NullPointerException AWT, Swing, JavaFX & SWT 4
D javax.swing.Timer bringt NullPointerException AWT, Swing, JavaFX & SWT 4
R TextField bringt NullPointerException bei setVisible() AWT, Swing, JavaFX & SWT 12
A NullPointerException in einer JList AWT, Swing, JavaFX & SWT 7
F Fehler: java.lang.NullPointerException AWT, Swing, JavaFX & SWT 2
S Brauche Hilfe mit JFrame - NullPointerException AWT, Swing, JavaFX & SWT 7
A NullPointerException - warum? AWT, Swing, JavaFX & SWT 5
G NullPointerException bei Aufruf von JTabbedPane.getSelectedI AWT, Swing, JavaFX & SWT 7
G Problem mit NullPointerException AWT, Swing, JavaFX & SWT 11
M JTable verursacht NullPointerException AWT, Swing, JavaFX & SWT 8
M NullPointerException AWT, Swing, JavaFX & SWT 3
G Bekomme immer: NullPointerException AWT, Swing, JavaFX & SWT 2
J JComboBox - wie getSelectedItem() überschreiben? AWT, Swing, JavaFX & SWT 8
O JComboBox getSelectedItem AWT, Swing, JavaFX & SWT 4
I NullPointer bei getSelectedItem() in itemStateChanged() AWT, Swing, JavaFX & SWT 4
M JComboBox setSelectedItem() und getSelectedItem() NullPointer AWT, Swing, JavaFX & SWT 2
P DefaultComboBoxModel --> getSelectedItem() Problem AWT, Swing, JavaFX & SWT 9
G probleme mit getselectedItem! AWT, Swing, JavaFX & SWT 9
O feststellen ob JComboBox getSelectedItem() ohne Inhalt! AWT, Swing, JavaFX & SWT 2
H getSelectedItem() (can't convert to String) AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben