java - 单击 JLabel 运行方法

标签 java swing jlabel mouselistener

我想要的只是在单击 JLabel 后运行我的代码,但由于某种原因它不起作用,我无法弄清楚为什么> IDE 或控制台中没有错误。

final JLabel lblStatus = new JLabel(new ImageIcon(
                Main.class.getResource("/com/daniel/status1.png")));
        frame.getContentPane().add(lblStatus, BorderLayout.EAST);

        lblStatus.addMouseListener(new MouseAdapter() {

            public void mouseClicked(MouseEvent  arg0) {
            System.out.println("Clicked") 
            });

最佳答案

实现这一目标的一种方法是:

JLabel label = new JLabel("Click me");
        label.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) { System.out.println("Clicked me!"); }
            public void mouseEntered(MouseEvent e) {}
            public void mouseExited(MouseEvent e) {}
            public void mousePressed(MouseEvent e) {}
            public void mouseReleased(MouseEvent e) {}
        });

但是,正如建议的那样,最好在这里使用 JButtonActionListener:

JButton button = new JButton("Push me");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println("Pushed me!");
            }
        });

关于java - 单击 JLabel 运行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32580574/

相关文章:

java - Spark + Java 中从 String 到 Tuple2<String, Long> 的映射

java - Gson解析数组字符串

Java 刷新 JCombobox

java - 将 jTable 中的数据插入数据库

java - 如何设置 TicTacToe 游戏项目的界面?

java - 如何在单击 JLabel 时获取其变量名称

java - JScrollpane 之上的 JLabel

java - Java 中的后自增 (i++) 和预自增 (++i) 运算符如何工作?

java - Vertx.io 应用程序的单元测试

java - 如何在 Java 中最小化/图标化 JWindow?