Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

setText(variabel) i jLabel ?

Jag har för sökt få hjälp med denna fråga iJavaforum.se men fått som svar var felet är och det visste jag tidigare. Men När jag bad om konkrethjälp så sas det att det skulle jag lösa själv, "goddag yxskaft"
Nu försöker jag här.

Jag använder NetBeans 6.0 och har skapat en jForm AddUser
I formuläret har jag bl a skapat en jLabel jLabelHostName
Med hjälp av en class getHost sätter jag ett värde i strängvariabeln host
Jag lyckas sedan "hämta" värdet till main och skrva ut det med
System.out.println(host);

Jag vill nu skriva värdet i "labeln" jLabelHostName med
jLabelHostName.setText(host);
men det misslyckas jag med.

Antingen protesterar compilatorn med att jLabelHostName inte finns
eller så får jag följande meddelande när jag kör programmet:
Exception in thread "main" java.lang.NullPointerException
at AddUser.main(AddUser.java:167)

Det är någonstans i denna kod som jag gör fel:

<pre>
class getHost {
         String host;
         String anv=System.getProperty("user.name");
         String hemdir=System.getProperty("user.home");
         String rcfile =hemdir + "/.olfixrc";
        
         void readFile(){
         try {
             FileReader file = new FileReader(rcfile);
             BufferedReader buff = new BufferedReader(file);
             boolean eof = false;
             while(!eof){
                 String line = buff.readLine();
                 if (line == null)
                     eof = true;
                 else
                     if(line.contains("HOST=")){
                         host=line.substring(5,line.length());
                         AddUser.jLabelHostName.setText(host);
//                        System.out.println(line);
//                        System.out.println(host);
                     }
             }           
             buff.close();
            
         }catch (IOException e){
             System.out.println(" Error - " + e.toString());
         }
        
         }
         void display(){
//            AddUser.jLabelHostName.setText(host);         
             System.out.println(host);
         }
}

I inget dera fallen skrivs något i jLabelHostName.

Hur ska jag bära mig åt för att skriva texten i jLabelHostName

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

trappskis bild

Vilken rad är 167 i koden?

kan man anta att det är denna?
AddUser.jLabelHostName.setText(host);

är du säkert på att jLabelHostName är initaliserad där?
Eftersom du får en Null Pointer exception så verkar det inte vara så. alt. att AddUser inte är ordentligt initaliserad.

JanPihlgrens bild

Eftersom jag använt NetBeans grafiska interface utgår jag, som nybörjare att jag sedan kan använda den.
Jag är van vid hur Qt3 Designer fungerar. Har jag definierat en label,button mm så kan jag sedan anropa de varifrån som helst.
För mig verkar det grafiska IDEn i NetBeans vara ofullkomlig, eller ....?

JanPihlgrens bild

Problemet löst.
Orsak till problemet:
Delvis pga min egen okunskap om Java, naturligtvis. Delvis beroende på tron att NetBeans skulle vara lika bra som Qt3 Design som jag är van vid. Men så är det.
Jag tycker det ofta är/blir lite onödigt omständigt att göra en del saker i java. Men Sun lär inte bry sig. Wink

elwiss bild

Det är alltid så att lära sig nytt. Oroa dig inte, en dag i framtiden kommer du säkert att inse att Java är bäst Wink