多个 JLabel 上的鼠标侦听器
Mouse Listern on multiple JLabel
我创建了一些动态 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 添加一个 new/seperate MouseAdapter 对象
jl[i].addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me){
}
});
所以在 mousePressed 事件中调用 me.getComponent() 应该 return 你是标签对象
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();
}
});
我创建了一些动态 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 添加一个 new/seperate MouseAdapter 对象
jl[i].addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me){
}
});
所以在 mousePressed 事件中调用 me.getComponent() 应该 return 你是标签对象
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();
}
});