【发布时间】:2011-12-23 03:44:34
【问题描述】:
场景:我有一个JFrame 和JPanel 添加到JFrame。在这个面板上,我使用以下方法绘制了 3 张图像:
public void paint(graphics g) {
g.drawImage(img1,100,100,null);
g.drawImage(img2,200,200,null);
g.drawImage(img3,300,300,null);
}
我已经实现了MouseListener 接口来监听点击。现在,我希望每当我单击这些图像中的任何一个时,我的输出(在命令提示符下使用System.out.println();)应该是我单击的图像对象?
请解释一下这是否可能以及如何实现?
【问题讨论】:
-
您似乎是在一张一张地绘制图像——对吗?您应该在 JPanel 的paintComponent 中进行所有绘制,而不是绘制。更好的是使用包含 ImageIcons 的 JLabels。
-
@Hovercraft Full Of Eels:你是对的......可能最好的应该是使用 JLabels 并为每个附加鼠标监听器。我让你写这个解决方案:)
-
@Heisenbug:您继续并将其作为选项添加到您的答案中。我有足够的积分。顺便说一下你的答案1+。
标签: java image swing jpanel mouseevent