MouseListener似乎不适合我

我需要在我的导师的序言下不要让我们使用IDE。 我们使用TextPad。 我想点击这个标签,然后从“H”变为“T”。 目前,当我点击标签什么也没做。 我忘记了什么?

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Lab3Label extends JLabel implements MouseListener { int count = 0; boolean flag = true; public Lab3Label (int i) { setLayout(new BorderLayout()); count = i; this.setText("H"); this.setFont(new Font("Serif", Font.PLAIN, 60)); this.setBorder(BorderFactory.createLineBorder(Color.black)); } public void mouseReleased(MouseEvent e) { if(flag){ this.setText("H"); flag = false; } else{ this.setText("T"); flag = true; } } public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mousePressed(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void mouseEntered(MouseEvent e){} } 

您的JLabel实现了MouseListener ,但您还需要告诉JLabel将事件发送给自己。 在构造函数的最后你需要说

 addMouseListener(this); 

如果你记得你可以将任何类放入MouseListener ,并且你必须将你的监听器连接到你的JLabel ,这就更有意义了。 JLabel是自己的倾听者这一事实并不能免除你的责任。

您从未将MouseListener添加到标签中。

为此,只需添加以下代码:

  addMouseListener(this); 

那是因为你需要将鼠标监听器添加到你的JLabel。 在你的构造函数中添加:

 addMouseListener(this);