我想在我的窗口上显示一组图像(带有相关文本)。我想使用上一个和下一个按钮迭代它们。到目前为止,我只能将图像与JLabel
相关联。 = /
我该怎么做呢?我应该为整套使用不同的容器吗?我应该在像ArrayList
这样的数据结构上加载图像,还是将它们保存在文件夹中?如何添加事件处理以便按下按钮显示下一个或上一个图像?
这是我目前所拥有的screenshot。
答案 0 :(得分:1)
你还在吗?
我假设你已经找到了如何加载每个图像的路径(如果它们在同一个文件夹中)。您应该将目录的路径存储在全局变量中,然后将每个图像的名称存储到Vector中(如果要迭代它们)。只需存储文件的名称,而不是整个图像。 您还必须将当前图像的索引存储为全局变量。
如果使用JFrame作为主窗口,则必须指定它以这种方式实现ActionListener类:
public class MyClass extends JFrame implements ActionListener
然后你必须将事件处理程序附加到按钮(JButton)。这必须放在窗口的构造函数(MyClass)中:
nextButton.addActionListener(this);
previousButton.addActionListener(this);
实现了ActionListener后,您的类必须定义actionPerformed方法。在其中,您必须根据已按下的按钮更改图像的内容。
public void actionPerformed(ActionEvent e)
{
Object o = e.getSource();
if(o == nextButton)
{
currentIndex++;
if(currentIndex == vectorImages.size())
{
currentIndex = 0;
}
//Change the image in the JLabel
label.setIcon(new ImageIcon(vectorImages.get(currentIndex)));
}
else
{
//Iterate backwards
}
}
希望这会有所帮助......