Java, страница через массив - PullRequest
1 голос
/ 11 ноября 2009
    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);

У меня есть вышеуказанный массив, и мне нужно отобразить результаты в графическом интерфейсе свинга со следующей кнопкой, которая будет отображать первые значения индекса, а при нажатии следующей кнопки будут отображаться следующие значения индекса и т. Д.

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

У меня работает приведенный выше код и, конечно, он отображает последний элемент в массиве.

Мой вопрос: как бы я отобразил первый индекс в массиве, и когда пользователь щелкнет следующий, отобразит следующий элемент в массиве, а также перейдет к предыдущему индексу при нажатии кнопки «Назад»?

Проще говоря, мне нужно пролистывать каждый индекс при нажатии кнопки.

1 Ответ

1 голос
/ 11 ноября 2009

Вам не нужна петля. При первой загрузке кадра вы можете просто отобразить первый элемент в массиве. Затем вы можете создать следующую кнопку.

 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());     
       }
    }
 });

Вы можете добавить еще одну кнопку для предыдущей, которая просто уменьшает currentIndex каждый раз, гарантируя, что она никогда не станет отрицательной.

...