画像へのリンクを含むいくつかの JLabel が作成されるループがあります。
JLabel ごとに、JButton が作成されます。
私が探している動作は、JButton ごとに、メソッドを起動するクリック リスナーを追加することです。
最初の問題は、スレッド内にリスナーを追加できないように見えることです。
2 つ目の問題は、各 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();
}
}