13. december 2003 - 21:13Der er
19 kommentarer og 1 løsning
Postnummermodul i java-program - NullPointerException
Jeg er ved at lave at program i Java. Til at støtte programmet har jeg en pakke hvori der ligger et postnummer-modul jeg selv har skrevet og ved virker.
Når brugeren indtaster et postnr i GUI'en fanger en actionlistener indtastningen og giver postnummeret videre som en string til metoden i postnummermodulet som burde returnere en string med byens navn.
Men det sker bare ikke! Der opstår i stedet en NullPointerException...
Herunder er min actionlistener:
//----------------------------------------------------------------- // Ved indtastning i postnr-tekstfeltet. // Udfra postnummeret findes den tilhørende by. //----------------------------------------------------------------- private class PostnrfeltLytter implements ActionListener { public void actionPerformed(ActionEvent event) { String indtastetPostnr = postnummer.getText(); System.out.println("" + indtastetPostnr); try { String fundetBynavn = postnrdatabase.findBynavn(indtastetPostnr); } catch (NullPointerException e) { System.out.println("" + e); } by.setText(fundetBynavn);
martin -> ja, men i den linje indgår både postnrdatabase-referencen (som erik siger) og indtastetPostnr Hvor går det galt? -af din kode fremgår det ikke hvor postnrdatabase bliver initialiseret
Her er min kode set i mere sammenhængende perspektiv. Uvæsentlig kode er udeladt:
import mam.Postnr;
public class OpretMedlemUI extends JPanel { { private Postnr postnrdatabase;
public OpretMedlemUI() { Postnr postnrdatabase = new Postnr(); } private class PostnrfeltLytter implements ActionListener { public void actionPerformed(ActionEvent event) {
Nu virker det! Tak for jeres hjælp alle sammen. Herunder er den endelige kode som virker.
import mam.Postnr;
public class OpretMedlemUI extends JPanel { { private Postnr postnrdatabase;
public OpretMedlemUI() { postnrdatabase = new Postnr(); } private class PostnrfeltLytter implements ActionListener { public void actionPerformed(ActionEvent event) {
Her har jeg lige optimeret koden lidt og fjernet det unødvendige.
import mam.Postnr;
public class OpretMedlemUI extends JPanel { private Postnr postnrdatabase;
public OpretMedlemUI() { postnrdatabase = new Postnr(); } private class PostnrfeltLytter implements ActionListener { public void actionPerformed(ActionEvent event) { String indtastetPostnr = postnummer.getText(); String fundetBynavn = postnrdatabase.findBynavn(indtastetPostnr ); by.setText(fundetBynavn); } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.