多个 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();
            }
    });