每次我点击下一步按钮,它应该显示我的数组列表的下一个元素。不是这样的。它停留在第一个元素。
JButton btnNext = new JButton("Next");
btnNext.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
ArrayList numbers = new ArrayList();
numbers.add("A");
numbers.add("B");
numbers.add("C");
ListIterator litr = numbers.listIterator();
if (litr.hasNext()) {
System.out.print(litr.next());
}
}
});
btnNext.setBounds(71, 167, 89, 23);
contentPane.add(btnNext);
获取输出:AAA预期输出:ABC(3次点击)
2条答案
按热度按时间yhived7q1#
每次单击都创建一个新的
ArrayList
,向其添加3个元素,创建一个迭代器并通过迭代器从列表中获取第一个元素。因此,您总是得到相同的输出。为了在每次单击时获得不同的元素,应该将
ArrayList
和迭代器作为类的成员。例如:
请注意,在单击按钮3次后,它将停止生成输出,因为迭代器将到达列表的末尾。
cgvd09ve2#
每次执行
actionPerformed
方法时,都要重新创建列表和迭代器。但是,您必须重用相同的迭代器示例,以获得所需的结果。你可以例如将迭代器存储为ActionListener
中的字段: