java - 如何将 mouseListener 添加到匿名 JLabel 对象?

标签 java swing awt jlabel mouselistener

目前我正在使用 for 循环用 1-31 之间的数字填充 JPanel

所以基本上,我想做的是,如果我点击数字 1,它就会显示

System.out.println(1);

代码如下:

     public class MonthPanel extends JPanel implements MouseListener {

        public MonthPanel() {
            setLayout(new GridLayout(6,7));
            // Add headers
                // Use for-each loop.
                for (String header : headers) {
                  add(new JLabel(header));
                }

                for (int i = 1; i < 31; i++) {
                  add(new JLabel(String.valueOf(i)));
                }

            addMouseListener(this);
        }

    public void mouseClicked(MouseEvent e) {
            // What should i do in here to get a specific JLabel? 
               }
        }
}

这是图片

enter image description here

最佳答案

解决办法在这里

首先,您必须在标签中添加鼠标监听器,该标签应该在括号中包含鼠标适配器,因为您只想使用鼠标单击方法。

然后在其中添加 mouseClicked 方法。

然后在 mouseClicked 方法中添加代码。

示例:

    JLabel l = new JLabel("label");
    l.addMouseListener(new MouseAdapter() {

        public void mouseClicked(MouseEvent e) {

            // Your Code Here

        }

    });
    add(l);

关于java - 如何将 mouseListener 添加到匿名 JLabel 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30695415/

相关文章:

java - 在我的程序中线程没有按顺序打印

java - 如何实现我扩展到 Frame 而不是 JFrame 的类?

java - 带 TexturePaint 的图标抛出 InternalError : Surface not cachable

java - java中泛型类的泛型容器

java - 将省略号作为参数传递给 java 方法

java - 检测SessionUnsubscribeEvent的目标 channel

java - JDialog打开速度很慢

java - JPanel 周围的数字; JPanel边框?

java - 带有最小和最大按钮的 JSpinner

java - 从瓦片 map 加载子图像