gpt4 book ai didi

java - 多个 JLabel 上的鼠标监听器

转载 作者:行者123 更新时间:2023-12-01 22:15:34 24 4
gpt4 key购买 nike

我创建了一些动态JLabels,并为每个标签添加了MouseLister。现在的问题是我如何检测我点击了哪个JLabel?这是我的代码。

    int c1=40;
setLayout(null);
jPanel1.setSize(new Dimension(500, 200));
jPanel1.setLayout(new GridLayout(4, 10));
JLabel[] jl = new JLabel[c1];
for(int i=c1-1; i>=0; i--){
jl[i] = new JLabel();
//jl.setText("O");
jl[i].setPreferredSize(new Dimension(20,20));
jl[i].setIcon(new ImageIcon(NewJFrame.class.getResource("booked.png")));
jl[i].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
jPanel1.add(jl[i]);
jl[i].addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me){

}
});
}

最佳答案

对于每个 JLabel,您要添加一个新的/单独的 MouseAdapter 对象

 jl[i].addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me){

}
});

因此在 mousePressed 事件中调用 me.getComponent() 应该返回标签对象

jl[i].addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me){
//Better to check if its returning JLabel obejct using instance of
JLabel c = (JLabel) me.getComponent();
}
});

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

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