Создание уникальных слушателей действий в цикле
В настоящее время я пытаюсь создать уникальных слушателей действий для изображений на JPanel. По сути, я показываю название фильма с изображением пяти звезд справа от названия.
Пользователь может щелкнуть звездочку, и прозрачный прямоугольник изменяет размеры области, по которой щелкнули пользователи, все это работает правильно, однако каждое изображение звезды совместно использует один и тот же приемник щелчка мыши, поэтому все изображения звезд реагируют на одно и то же событие щелчка мыши.
Я пытаюсь создать уникальный прослушиватель событий для каждого изображения звезды, чтобы каждый из них мог установить разные значения перед нажатием кнопки "Сохранить" для сохранения значений. Может ли кто-нибудь дать мне несколько советов о том, как этого можно достичь?
public void addJPanel() {
GridLayout layout = new GridLayout(0, 2);
JPanel buttonPanel = new JPanel(new FlowLayout());
this.setLayout(layout);
try {
img = ImageIO.read(new File("stars.jpg"));
} catch (IOException e) {
System.out.println("No image found!");
}
JLabel label;
try {
for (Media med : cart.getCart().keySet()) {
label = new JLabel(med.getTitle());
ratingTxt.add(label);
this.add(ratingTxt);
label = new JLabel(new ImageIcon(img));
ratingImg.add(label);
ratingImg.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
JLabel label2 = null;
ratingImg.removeAll();
for (Media med : cart.getCart().keySet()) {
label2 = new JLabel(new ImageIcon(Process(img,
e.getX())));
ratingImg.add(label2);
}
frame.pack();
frame.setSize(600, 250);
}
});
this.add(ratingImg);
}
} catch (NullPointerException e) {
label = new JLabel(
"Nothing to display try doing some shopping first!");
this.add(label);
}
}