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);