aspose file tools
The moose likes Java in General and the fly likes ArrayList & ListIterator Help Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login


Win a copy of The Mikado Method this week in the Agile and other Processes forum!
JavaRanch » Java Forums » Java » Java in General
Reply Bookmark "ArrayList & ListIterator Help" Watch "ArrayList & ListIterator Help" New topic
Author

ArrayList & ListIterator Help

Brian Drelling
Ranch Hand

Joined: Oct 02, 2009
Posts: 42
Okay, so I am not sure exactly what information I need to give, but I will try...

I have a program called "QuestionBuilder" that will allow the user to enter several fields for a trivia question and some answers, then hit the 'Next' button. They will also be able to hit the 'Previous' buttons, but the Previous button is disabled unless you are on any element after the first (a preventative measure). Previous goes to the last element in the Array, Next moves forward. Here is how it is set up:

questionIndex is my counter. It starts at 0.
ArrayList questionSheet is initiated (errors are returned but they don't stop the program from running--can anyone explain this?)

User enters question and answer fields, then hits 'Next' button.

Upon hitting the Next button, it'll do the following:

My Question Class Constructor:


My Question Status Checking Method:


My 'Previous' button code:


My 'Next' button code:


Some other things to explain:

hasNext does exactly what it should--it checks to see if the questionIndex is less than the size of the Array - 1. If there is any difference between the two numbers, it has a next location in the Array.

setQuestionStatus() basically is run at the end of the major methods that might change any of my booleans. The booleans are updated, which then focuses on enabling/disabling buttons and making sure my counts are correct and such.

setCurrentQuestion() takes the questionIndex AFTER it is being incremented or decremented and will set the fields to the question that it pulls out of the area (does a simple questionSheet.get(questionIndex) call).


Alright, so information out of the way (I think), I'll tell you what it is doing...

When I hit Next, it should:

- Check to see if it has a next question (should have done this already but just simplifying in this list)
- If it does, save existing question, clear the fields, then repopulate the fields with the new info
- If it does not, add existing question to array, clear fields


When I hit Previous it should:

- Check to see if the current question has been added to the Array (I can't use a simple indexOf because it could have been changed -- THIS IS THE TRICKY PART FOR ME)
- If it does, save the existing question, clear the fields, and move on
- If it does not, add the question to the area, clear the fields, and move on
- Repopulate the fields with the values for the previous question
- Check to see if it is the first question and disable the previous button if so


My program works great. I hit next, next, next, and I watch the number of the question go up and up (the title label which I have in my swing). PERFECT. Then I hit previous, previous, previous... also working like a charm! However, somewhere along the way, it skips numbers. I think the "isLastQuestion" boolean I have set up is not working properly. I have it call at the end of the buttons to replace the values, and check for the Array size - 1, as I think it should... but somewhere it starts cutting out, and I cannot find a pattern.

There is another problem, but I want to find the fix to this one first... if anyone could help, I would STRONGLY appreciate it. I know this has been a lot of code and text to read through!
Priety Sharma
Ranch Hand

Joined: Jun 10, 2008
Posts: 156

In the method nextQuestion() is is necessary to do

in the else part. When you are already at the end of the list?

Priety.
Brian Drelling
Ranch Hand

Joined: Oct 02, 2009
Posts: 42
Yes it is, because when you hit the next button and previous button, they eventually have to increment/decrement during the method at some point.
 
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to run our stuff on 16 servers instead of 3.
 
subject: ArrayList & ListIterator Help
 
Similar Threads
Using Iterator for next and previous with TreeMap
TicTacToe! Stop user from changing input
SetFocus on re-displayed page
Another struts buttons question...
Using Iterator for next and previous with TreeMap