Toon posts:

[Java] Null pointer exception, JLabel

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo Tweakers,

Vandaag ben ik begonnen aan het schrijven van een programmaatje wat bepaalde elementen uit een XML-file parsed en deze naar de commandline wegschrijft.

Dat gaat allemaal prima en lekker, maar nu wil ik het graag in dialoogvorm omzetten.

Dat is ook allemaal prima gegaan met componenten als JFileChooser etc. Het probleem alleen is dat wanneer ik mijn output ipv. naar de console, naar een JLabel wil sturen ik een nullpointer exception krijg. Heel vervelend en ik kan het niet verklaren.
Java:
1
2
3
NodeList referentie = element.getElementsByTagName("referentie");
line = (Element) referentie.item(0);
System.out.println("REFERENTIE: " + getCharacterDataFromElement(line));

Werkt prima, maar vervang ik de laatste regel door:
Java:
1
bankIdXMLLabel.setText(getCharacterDataFromElement(line));

Duikt de exception op, nu kan het zijn dat ik JLabel gewoon totaal verkeerd heb begrepen maar volgens de JDocs:
code:
1
2
setText(String text)
          Defines the single line of text this component will display.

Zou dit toch goed moeten zijn, iemand die me wat meer aan mijn verstand kan peuteren?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 16:37

Robtimus

me Robtimus no like you

Waar en hoe wordt bankIdXMLLabel gedeclareerd en geinitialiseerd?
setText accepteert null als argument, dan wordt de label gewoon leeg gelaten. Aangezien de aanroep eerder wel werkte vermoed ik dat bankIdXMLLabel null is.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Een NullpointerException is (bijna) altijd het resultaat van het aanroepen op een object dat null is, en we hebben geen initialisatie gezien van bankIdXMLLabel.

  • webinn
  • Registratie: Oktober 2002
  • Laatst online: 06-06-2025
kan je is ff de volledige error geven? Meestal is het dan duidelijk wat er net leeg is

Verwijderd

Topicstarter
Java:
1
2
3
4
5
public class ATM_03 extends JFrame {
    private static JLabel bankIdLabel;
    private static JLabel refNrLabel;
    private static JLabel bankIdXMLLabel;
    private static JLabel refNrXMLLabel;


Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// deze code staat in de constructor
 // de componenten
        JLabel bankIdLabel = new JLabel("Bank ID: ");
        JLabel refNrLabel = new JLabel("Referentie: ");
        
        JLabel bankIdXMLLabel = new JLabel();
        JLabel refNrXMLLabel = new JLabel();
        
           
        // add te componenten aan het frame
        container.add(bankIdLabel);
        container.add(bankIdXMLLabel);
        
        container.add(refNrLabel);
        container.add(refNrXMLLabel);

[ Voor 8% gewijzigd door Verwijderd op 30-05-2006 17:50 ]


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 16:37

Robtimus

me Robtimus no like you

Je hide je instance variables met locale variabelen in je constructor. Je declareert en initialiseert daar een nieuwe variabele, die toevallig hetzelfde heet.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Topicstarter
Helemaal goed, stom dat ik daar zo overheen kijk.

Dankje :)

  • webinn
  • Registratie: Oktober 2002
  • Laatst online: 06-06-2025
yep,

niet JLabel bankIdLabel = new JLabel("Bank ID: ");

maar bankIdLabel = new JLabel("Bank ID: ");

gebruiken

[ Voor 10% gewijzigd door webinn op 30-05-2006 17:59 . Reden: te laat ;-) ]


  • NDF82
  • Registratie: Januari 2002
  • Laatst online: 20-02 16:03

NDF82

Doomed Space Marine

Voor diegene die bezig zijn met het SCJP examen, deze "feature" heet ook wel variable shadowing. Zie voor een kritische note http://www.leepoint.net/n...s/60shadow-variables.html

Pentium 233MHz MMX + Diamond Monster 3D 3DFX Voodoo II


  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

In een IDE, zoals Eclipse, zo'n beetje alle waarschuwingen aanzetten die je aan kan zetten beschermt je hier wel tegen.

Wie trösten wir uns, die Mörder aller Mörder?

Pagina: 1