views:

80

answers:

1
    Test[] array = new Test[3];

    array[0] = new RowBoat("Wood", "Oars", 10);
    array[1] = new PowerBoat("Fiberglass", "Outboard", 35);
    array[2] = new SailBoat("Composite", "Sail", 40);

I have the above array and I need to display the results to a swing GUI with a next button that will display the first index values, and when the next button is clicked it will display the next index values and so on.

    for (int i=0;; i++) {
            boatMaterialTextField.setText(array[i].getBoatMaterial());
            boatPropulsionField.setText(array[i].getBoatPropulstion());
    }

I have the above code working and of course it displays the last item in the array.

My question is: How would I display the first index in the array and when the user clicks next display the next item in the array as well as go to the previous index when a back button is clicked?

Simply put I need to page through each index when a button is clicked.

+1  A: 

You do not need a loop. When the frame first loads you can simply display the first item in the array. You can then create a next button.

 JButton nextBtn;
 int currentIndex;

 ...

 currentIndex = 0;
 //display the first item in the array.
 boatMaterialTextField.setText(array[currentIndex].getBoatMaterial());
 boatPropulsionField.setText(array[currentIndex].getBoatPropulstion());

 nextBtn = new JButton("Next>>");
 nextBtn.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
       if(currentIndex < array.length){
        boatMaterialTextField.setText(array[++currentIndex].getBoatMaterial());
        boatPropulsionField.setText(array[currentIndex].getBoatPropulstion());     
       }
    }
 });

You can add another button for previous that simply decrements the currentIndex each time ensuring to check that it never becomes negative.

Vincent Ramdhanie
That's slick Vincent, very nice. Thank You
JS