我知道解决方案是使用 for 循环遍历数组并显示在窗格中。但是,我没有找到对此的直接解释。我需要一个下一个和一个上一个按钮来显示每个数组元素,并在按下下一个按钮时返回到第一个元素。
for ( int i = 0; i < initem.length; i++ ){
JOptionPane.showMessageDialog( null, initem[i]);
}
initem 是我的数组的名称。
合并 ActionListerner
class RecordViewer extends JDialog
{
private JButton next;
private JButton prev;
private JLabel label = new JLabel();
private int current = 0;
private CDinventoryItem [] items;
public RecordViewer(CDinventoryItem [] array){
super();
items = array;
label = this.setLabel(items[Current()]);
next = new JButton("Next");
next.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if( getCurrent() == items.length ){
setCurrent(0);
}else{
setCurrent(getCurrent() + 1);
}
setTitle("Inventory Item");
setSize(1200, 300);
setLocation(200,200);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
getLabel().setText(items[getCurrent()].toString());
}
});
prev = new JButton("Previous");
prev.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if( getCurrent() == 0){
setCurrent(items.length - 1);
}else{
setCurrent(getCurrent() - 1);
}
setTitle("Inventory Item");
setSize(1200, 300);
setLocation(200,200);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
getLabel().setText(items[getCurrent()].toString());
}
});
setLayout(new FlowLayout());
add(label);
add(next);
add(prev);
pack();
this.setVisible(true);
}
public JButton getNext() {
return next;
}
public void setNext(JButton next) {
this.next = next;
}
public JButton getPrev() {
return prev;
}
public void setPrev(JButton prev) {
this.prev = prev;
}
public JLabel getLabel() {
return label;
}
private int getCurrent() {
return current;
}
public void setCurrent(int current) {
this.current = current;
}
private JLabel setLabel(CDinventoryItem cDinventoryItem) {
return label;
}
private int Current() {
return current;
}}