gpt4 book ai didi

java - JPanel 数组的鼠标监听器

转载 作者:行者123 更新时间:2023-12-01 10:22:14 26 4
gpt4 key购买 nike

我有一个 JPanel 数组,它们本身包含 ImageIcons,我已将此数组 JPanel 添加到单个 JPanel 中(因为我使用的是滚动 Pane )。在添加这些 JPanel 时,我为每个 JPanel 添加了一个鼠标监听器,我的问题是,是否可以编写一个可以使用 e.getSource() 或其他此类方法的事件处理程序,在其中我可以从中提取 JPanel 和 ImageIcon点击了哪一个。

这可能听起来很复杂,因为我无法很好地解释我的情况,但下面是我迄今为止拥有的一些相关代码片段。

imageArray=new BufferedImage[256];
imageLabelArray = new JLabel[256];

...

imageArray[i] = volume.getSlice(image, face, i);//this returns an image
scaledImage = imageArray[i].getScaledInstance(25,25,
Image.SCALE_SMOOTH);
imageLabelArray[i] = new JLabel(new ImageIcon(scaledImage));
imageLabelArray[i].addMouseListener(this);

...

for(int i=0;i<255;i++){
panel.add(imageLabelArray[i]);
}

...

public void mouseClicked(MouseEvent e) {
// TODO extract image data
dispose();
}

我可以回答任何可以解决问题本身的问题,并且我将编辑问题以匹配。

最佳答案

编写一个从 JPanel 扩展的类,它有一个 getter(可能还有一个 setter),允许您管理图像。剩下的答案就变成了是。

只需将 MouseEvent#getComponent 结果转换为您的“面板”类型,然后您就可以访问获取/设置图像的功能

关于java - JPanel 数组的鼠标监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35514921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com