我有一个循环,其中创建了几个 JLabel,其中包含指向图像的链接。
对于每个 JLabel,都会创建一个 JButton。
我正在寻找的行为是为每个 JButton 添加一个单击侦听器,该侦听器触发一个方法。
第一个问题是我似乎无法在线程中添加监听器。
第二个问题是我看不到如何指定每个 JButton 来触发具有不同值的单击侦听器。
我正在寻找类似于以下内容的内容(显然 onClick 方法不存在):
Thread thread = new Thread(new Runnable()
{
public void run()
{
JPanel mainPanel = new JPanel();
for (int counter = 0; counter < imageSources.size(); counter++)
{
JLabel imageSource = imageSources.get(counter);
// JButton saveToDisk = new JButton("Save Image");
// saveToDisk.onClick(saveFavourite(imageSources.get(counter)));
mainPanel.add(imageSource);
// mainPanel.add(saveToDisk);
}
.
.
.
public void saveFavourite(String imageUrl)
{
BufferedImage image = null;
try
{
URL url = new URL(imageUrl);
image = ImageIO.read(url);
ImageIO.write(image, "jpg", new File("/Users/USERNAME/Desktop/" + webPage.getMemeId(imageUrl) + ".jpg"));
}
catch (IOException e)
{
e.printStackTrace();
}
}