我目前正在尝试为JPanel上的图片创建独特的动作侦听器。我基本上是在名字右边显示一个五星图像的电影名称。
用户可以单击星星,并且透明矩形会调整大小到用户单击的区域,所有这些都可以正常工作,但是每个星形图像都共享相同的鼠标单击侦听器,因此所有星形图像都会对同一个鼠标单击事件做出反应。
我正在尝试为每个星形图像创建一个独特的事件监听器,以便在单击" save"之前可以将它们各自设置为不同的值。用于存储值的按钮。谁能给我一些关于如何实现这一目标的建议?
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);
}
}