Hi Marco,

You are getting rather confused about some fundamental things.
An object first has to be declared...

JLabel myLabel;    // at this point the variable 'myLabel' is null

... and then created using the 'new' operator...

myLabel = new JLabel("Hello World");

These two things can be done in one line of code...

JLabel myLabel = new JLabel("Hello World");

A really good place to start learning Java is: 
http://java.sun.com/docs/books/tutorial/
There is a wealth of information there contained in 'trails'.

And a really good forum to ask questions like this is: 
http://www.coderanch.com/forums
There is an easy way to post formatted code there - look for the
'Beginning Java' forum.

Hope this helps,

David

On Mar 31, 7:05 am, Marco <[email protected]> wrote:
> Alexey
>
> you are right, at the point i want to change the jLabel2 it is 'null',
> but it isn't 'null' when i first set it to '0'. Is this because it
> gets instantiated in an other method (gets done automatically by
> netbeans)?
>
> when i put
> jLabel2 = new JLabel();
> in front of the setText i don't get the error but the text on my
> original jLabel2 doesn't change (probably because i'm referring to the
> wrong instance.), how can i reach the correct instance or how can i
> make shure jLabel2 doesn't become 'null' ?
>
> keep in mind I am a beginner, thanks for the patience.
>
> greetings
>
> Marco
>
> On 30 mrt, 18:10, Alexey Zinger <[email protected]> wrote:
>
>
>
> > Why don't you stick a little debug output of jLabel2 value somewhere just 
> > before you call jLabel2.setText.
>
> > ________________________________
> > From: Marco <[email protected]>> To: The Java Posse 
> > <[email protected]>
> > Sent: Tue, March 30, 2010 11:24:09 AM
> > Subject: [The Java Posse] Re: Changing JLabel text from other Class
>
> > thanks for the response
>
> > i used following code to check if i was on the EDT
>
> > if(javax.swing.SwingUtilities.isEventDispatchThread()){
> >     System.out.println("is EDT");
> >     System.out.println( Thread.currentThread().getName() );
> >     jLabel2.setText("test");
>
> > }else{
>
> >     System.out.println("is not EDT");
>
> > }
>
> > the console returns "is EDT" and the name "AWT-EventQueue-1" but still
> > gives an error on the 'jLabel.setText("test");' line
>
> > in the run method of the 'Agenda' class i use 'jLabel2.setText(""+
> > userID);'  this works and gives no errors. It sets jLabel2 to the
> > original userID value of 0.
>
> > it only generates an error used in the setUserID method that gets
> > called from the 'Login' class
>
> > following lines instantiate (?) jLabel2
>
> > private javax.swing.JLabel jLabel2; (ivar)
> > jLabel2 = new javax.swing.JLabel(); (in the initComponents() method
> > that gets called in the initial run method of the 'Agenda' class)
> > the above code was generated by Netbeans.
>
> > ???
>
> > greetings
>
> > Marco
>
> > On 30 mrt, 09:17, Jan Goyvaerts <[email protected]> wrote:
>
> > > I haven't got time yet to read the whole conversation, but...
>
> > > a regular Swing beginner's error is to work outside the EDT (event 
> > > dispatch
> > > thread). If you're changing the label - or anything visual for that 
> > > matter -
> > > outside the EDT weird things can happen. Look into SwingUtilities to check
> > > if the current thread is the EDT. Otherwise schedule it to run in the EDT.
>
> > > MAYBE that's your problem.
>
> > > On Tue, Mar 30, 2010 at 00:43, Alexey Zinger <[email protected]> 
> > > wrote:
> > > > My money is jLabel2 is null.  Even if userID is null, 
> > > > jLabel2.setText("" +
> > > > userID) should still work.  Not to mention that calling JLabel.setText 
> > > > with
> > > > null is allowed.
>
> > > > Alexey
> > > > 2001 Honda CBR600F4i (CCS)
> > > > 2002 Suzuki Bandit 1200S
> > > > 1992 Kawasaki EX500
> > > >http://azinger.blogspot.com
> > > >http://bsheet.sourceforge.net
> > > >http://wcollage.sourceforge.net
>
> > > > ------------------------------
> > > > *From:* Casper Bang <[email protected]>> > > *To:* The Java Posse 
> > > > <[email protected]>
> > > > *Sent:* Mon, March 29, 2010 6:15:55 PM
> > > > *Subject:* [The Java Posse] Re: Changing JLabel text from other Class
>
> > > > First of all, there are far better forums for these kind of questions.
> > > > A good one would be Sun's Swing forum:
> > > >http://forums.sun.com/forum.jspa?forumID=57
>
> > > > Secondly, your code is practically impossible to read because of all
> > > > the comments. When you post sample code, remember to trim it down to
> > > > just the essentials where the problem is reproducible.
>
> > > > Third, when encountering an NPE (Null Pointer Exception), one of the
> > > > referenced objects must not have been instantiated. Start tracing
> > > > backwards from there and deduce where Null could've been introduced,
> > > > either by logically tracking code paths or by using a debugger.
>
> > > > The culprit in this case is userID, based on the fact that the
> > > > exception is thrown from the event dispatching thread which is invoked
> > > > when you call setText. You have an awful lot of similar variables, uID
> > > > as the parameter, userIDapp as a copy of uID that you print out and
> > > > then finally the userID which you probably never set.
>
> > > > /Casper
>
> > > > On Mar 29, 7:34 pm, Marco <[email protected]> wrote:
> > > > > Hello,
>
> > > > > I have 2 classes one is the application and the other one the login
> > > > > screen, when i start the application i create a JFrame with the login
> > > > > screen. My login screen checks the username and password in a mysql db
> > > > > and when correct it returns the userID to the application (because the
> > > > > application needs to know this). This al works with the following
> > > > > code :
>
> > > > > in the login screen class 'Login' i have the code
> > > > > [code]
>
> > > > >             Agenda ag = new Agenda();
>
> > > > > ...
>
> > > > > if(userOK){
> > > > >         System.out.println("userOK gets executed."); //to check if the
> > > > > credentials where ok
> > > > >             jLabel1.setBackground(Color.green);
> > > > >             jLabel1.setText("You can enter"); //jLabel1 on the login
> > > > > screen itself
> > > > >         System.out.printf("userid %d\n",userID); //to check the value 
> > > > > of
> > > > the
> > > > > userID (this works)
> > > > >             ag.setUserID(userID); //method in the application class
> > > > > 'Agenda' to set the userID there
> > > > >         }
> > > > > [/code]
>
> > > > > in the application class 'Agenda' i have the setUserID method:
> > > > > [code]
> > > > > public void setUserID(int uID){
> > > > >     System.out.println("setUserID"); //to check if the method gets
> > > > > called = ok
> > > > >     userIDapp=uID;
> > > > >     System.out.printf("userid %d\n",userIDapp);//to check if the uID
> > > > > argument gets assigned to the locale variable userIDapp = ok
> > > > >     jLabel2.setText(""+ userID); //when i try to set the text of
> > > > > jLabel2 a JLabel in the 'Agenda' class i get an error also when i just
> > > > > put jLabel2.setText("test");}
>
> > > > > [/code]
>
> > > > > the error:
>
> > > > > Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
> > > > >         at agenda.Agenda.setUserID(Agenda.java:93)
>
> > > > > line 93 =
> > > > > [code]
> > > > >     jLabel2.setText(""+ userID);
> > > > > [/code]
>
> > > > > I'm still learning so if i make big mistakes here forgive me and teach
> > > > > me better ways
>
> > > > > thanks
>
> > > > > Marco
>
> > > > --
> > > > You received this message because you are subscribed to the Google 
> > > > Groups
> > > > "The Java Posse" group.> > > To post to this group, send email 
> > > > [email protected].
> > > > To unsubscribe from this group, send email to javaposse+> > 
> > > > >[email protected].
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/javaposse?hl=en.
>
> > > >  --
> > > > You received this message because you are subscribed to the Google 
> > > > Groups
> > > > "The Java Posse" group.> > > To post to this group, send email 
> > > > [email protected].
> > > > To unsubscribe from this group, send email to> > 
> > > > >[email protected]<javaposse%2bunsubscr...@googlegroups
> > > >  .com>
> > > > .
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/javaposse?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "The Java Posse" group.> To post to this group, send email 
> > [email protected].> To unsubscribe from this group, send email 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/javaposse?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to