gpt4 book ai didi

java - 如何使用 MouseListener 在 Java 中查找 JLabel 数组的 ID 名称

转载 作者:行者123 更新时间:2023-11-30 06:26:20 26 4
gpt4 key购买 nike

我做了什么。

我创建了一个像这样的 JLabel 数组:

static JLabel numbers[] = new JLabel[25];

我已为每个数字[每个]提供了 1 到 80 之间的随机数。

我已向每个 numbers[] 数组添加了一个 MouseListener

我想做一些类似的事情,一旦我按下特定标签即可更改其背景。但要做到这一点,我必须检测已按下 JLabel 的 ID。

问题:

如何获取 JLabel 上已按下的数组的名称或编号?

到目前为止,我只知道如何使用以下代码从中获取文本:

JLabel l = (JLabel) e.getSource();
int strNumber = Integer.parseInt(l.getText());

我想要numbers[THIS]的ID,不是文本而是数组的编号。

在按钮监听器中,我知道该怎么做,但在 MouseListener 中不起作用...

(至少使用我尝试过的方法...(e.getSource().getName(); 等)

最佳答案

您已经获得了数组,并且获得了对按下的 JLabel 的引用:e.getSource();,因此只需迭代数组即可找到与另一个匹配的一个。例如,

@Override
public void mousePressed(MouseEvent e) {
Object source = e.getSource();
int index = -1;

for (int i = 0; i < numbers.length; numbers++) {
if (numbers[i] == source) {
index = i;
break;
}
}
}

// here index either == the array item of interest or -1 if no match

附带问题:该数组不应该是静态的,而它是静态的表明您的程序存在一些需要修复的设计问题。

关于java - 如何使用 MouseListener 在 Java 中查找 JLabel 数组的 ID 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47128347/

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