gpt4 book ai didi

java - 使用 Java mouseClicked 事件处理程序来更改图标

转载 作者:行者123 更新时间:2023-11-30 03:53:59 25 4
gpt4 key购买 nike

我有很多标签。我的问题是,如果我单击 label2,然后在 label2 上设置新图像,但 label1 没有改变,我不知道如何编写。标签的命名如 A1-A10。 (我实际上有 92 个标签,所以这变得很麻烦。)这是我的代码:

public void mouseClicked(MouseEvent event) {

if (event.getSource()==A1 && (x==1)) {
A1.setIcon(new ImageIcon("zoldgomb.jpg"));
x=2;
} else if(x==2) {
A1.setIcon(new ImageIcon("sargagomb.jpg"));
x=1;
}
}

编辑

好的,我解决了,谢谢大家:)

if (event.getSource() instanceof JLabel) {
if (x == 1) {
((JLabel)event.getSource()).setIcon(new ImageIcon("zoldgomb.jpg"));
x = 2;
} else if (x == 2) {
((JLabel)event.getSource()).setIcon(new ImageIcon("sargagomb.jpg"));
x = 1;
}
}

最佳答案

  1. 听起来您应该使用 JLabel 的数组或 ArrayList。
  2. 变量名称应全部以小写字母开头,而类名称应以大写字母开头。此外,您还应该避免使用简单的变量名称,例如 bs ,除非它们用于简单的目的,例如 for 循环的索引。相反,使用具有一定含义的名称,以便您的代码成为 self 注释。
  3. 您可以通过对传递到您的方法的 MouseEvent 对象调用 getSource() 来识别按下了哪个 JLabel。您的参数名为上面的 event
  4. 然后在测试哪个 JLabel 被按下后,调用其 setIcon(...) 方法。
  5. 您最好读入图像一次并将其保存到变量中,而不是在每次单击鼠标时重新读入它们。

关于java - 使用 Java mouseClicked 事件处理程序来更改图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23712290/

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