Java,Page through array

时间:2009-11-11 03:15:02

标签: java arrays swing indexing paging

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

我有上面的数组,我需要将结果显示到一个swing GUI,下一个按钮将显示第一个索引值,当单击下一个按钮时,它将显示下一个索引值,依此类推。 / p>

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

我有上面的代码工作,当然它显示数组中的最后一项。

我的问题是:如何在数组中显示第一个索引,当用户单击下一个时显示数组中的下一个项目,以及单击后退按钮时转到上一个索引?

简单地说,我需要在单击按钮时浏览每个索引。

1 个答案:

答案 0 :(得分:1)

您不需要循环。首次加载框架时,您只需显示数组中的第一个项目即可。然后,您可以创建下一个按钮。

 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,确保检查它永远不会变为负数。