Swing Nullpointer Exception bei JFormattedTextField

vaults

Mitglied
Moin Leute,

ich bin kurz vorm durchdrehen und brauch schon wieder Hilfe.
Ich arbeite an einem kleinen Taschenrechner mit einem Eingabefeld und einem Ausgabefeld.
Diese sind beide JFormattedTextFields mit:

Java:
JFormattedTextField ausgabe = new JFormattedTextField(NumberFormat.getIntegerInstance());
	ausgabe.setValue(new Integer(int_ausgabe));
	ausgabe.setEditable(false);
	ausgabe.setPreferredSize(new Dimension(0,50));
	ausgabe.setCursor(getCursor());

int_ausgabe ist eine globale Variable, das selbe Schema, nur ohne getCursor und setVisible gilt auch für Eingabe.

Ich hatte so die Hoffnung, dass ich direkt Int-Werten arbeiten könnte und nicht jedesmal
Java:
xyz = Integer.parsetoInt(ausgabe.getText()
schreiben müsste.

Wenn ich jetzt auf einen Knopf drücke wird eine Action ausgelöst und die behandle ich, in diesem Fall will ich die beiden Werte der Fenster addieren:
Java:
switch (e.getActionCommand()){
			case	"add":
				{
					int_eingabe = 54;
					int_ausgabe = (int_ausgabe+int_eingabe);
					int_eingabe = 0;
					System.out.println("Ergebnis von "+int_ausgabe+" und "+int_eingabe+" ist: "+int_ausgabe);
					ausgabe.setValue(int_ausgabe); // Hier knallts
					
					break;
				}

Ich bekomme immer eine NullPointerException und ich habe keine Ahnung woran das liegt.
Vielleicht hat jemand eine Idee, würde mich sehr freuen.

LG,
Alex
 
Ich hatte so die Hoffnung, dass ich direkt Int-Werten arbeiten könnte und nicht jedesmal
Java:
xyz = Integer.parsetoInt(ausgabe.getText()
schreiben müsste.
Die Hoffnung stirbt zuletzt ;-) aber da wirst Du wohl nicht drumrumkommen.
Ich bekomme immer eine NullPointerException und ich habe keine Ahnung woran das liegt.
Es wird in der actionPerformed nochmals eine lokale Variable ausgabe deklariert, erstens nicht initialisiert ist und zweitens - selbst wenn initialisert - nichst nützt.
 
Moin,

selbst wenn ich die Textfelder wieder auf JTextField setze und einfach nur etwas anzeigen will klappt es nicht:
public void actionPerformed(ActionEvent e){
switch (e.getActionCommand()){
case "add":
{
System.out.println(eingabe.getText());

break;
}
Auch hier kriege ich wieder eine NullPointerException.
 
5 Stunden und mehr geärgert und alles weil ich im Konstruktur den Objekttyp auf beiden Seiten der Zuweisung angegeben habe:

Java:
JTextField ausgabe = new JTextField(10);
ist falsch, es muss heißen:
Java:
ausgabe = new JTextField(10);

Jetzt versuch ich das nochmal mit JFormattedTextField 😉
 
Moin,

so mit JFormattedTextField geht es auch, die Castoperation für die eigentlichen Operationen ist extrem unschön, funktioniert aber.

Java:
ausgabe.setValue(new Long((long)ausgabe.getValue()+(long)eingabe.getValue()));
eingabe.setValue(new Long(0));

Der große Vorteil beim JFormattedTextField mit zB:
Java:
ausgabe = new JFormattedTextField(new Long(ergebnis));
ist, dass die Anzeige wie auch auf dem Screenshot zu sehen bereits formatiert ist.
Außerdem überprüft er gleich die Eingabe auf eine gewisse Korrektheit, ohne das dies besonders behandelt werden muss.

LG,
Alex
 

Anhänge

  • calculator.jpg
    calculator.jpg
    21,5 KB · Aufrufe: 28

Zurück
Oben