Two Laptop Bag*
The moose likes Beginning Java and the fly likes Problem reading JTextArea Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Problem reading JTextArea" Watch "Problem reading JTextArea" New topic
Author

Problem reading JTextArea

Pedro Fonseca
Greenhorn

Joined: Mar 28, 2012
Posts: 8
Hello everyone, I'm studying Java with the Head First Java book and currently am at the I/O chapter, so one of the exercises is to make a Quiz Card class, builder and player.

However, I'm having issues with the builder as, for some reason, the program is not being able to read the content in the JTextAreas where you type your desired question and answer, whenever I try to do anything with the data, it throws a NullPointerException at runtime, even if the field is not blank and even after putting a setText() just before it.

If anyone could give me any insight of what is going wrong, I'd really appreciate it as I wasn't able to find any iffy code (I might be wrong) or a way to make it work, trying everything in my still limited knowledge to fix it, such as the aforementioned setText(), checking if the problem was the button, etc.

Here's the code as provided in the book (and from what I've learned so far, it was supposed to work):


It also uses a separate QuizCard class, which anyone using the book should write on their own and mine's as such:


I've considered the possibility of the problem being with my class, however testing everything by removing all instances where the separate class was called still gave me the exception, so it doesn't seem to be the problem (again, might be wrong).

Thanks in advance for any insights.
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18570
    
    8

You declare the "answer" variable at line 9 of your code, but you never assign anything to it. So it's always null. And then when you try to use it at line 75, you get a NullPointerException because it's null.

You may have thought that you assigned something to it at line 34. But you didn't. You declared a local variable of the same name, and assigned a reference to your JTextArea to that local variable instead of the instance variable declared at line 9.

Solution? Don't declare a local variable at line 34. Use the instance variable which is already available.

Pedro Fonseca
Greenhorn

Joined: Mar 28, 2012
Posts: 8
Whoa, thank you very much, it worked like a charm!

I didn't know/think that it meant declaring a new variable (and I did the same to the question variable).

Looking at it again, the book code doesn't declare them again, so it is most probably something I typed without properly realizing it and then proceeded to focus on the wrong part of the problem.

Anyway, again, I thank you very much for your help, Paul, I was already getting kinda desperate for not figuring what was wrong with the code.
 
GeeCON Prague 2014
 
subject: Problem reading JTextArea