MouseListener似乎不适合我

时间:2012-02-07 02:17:26

标签: java

我需要在我的导师的序言下不要让我们使用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){}


}

3 个答案:

答案 0 :(得分:6)

您的JLabel实施MouseListener,但您还需要告诉JLabel向自己发送事件。在构造函数结束时,您需要说

addMouseListener(this);

如果您记得可以将任何课程变成MouseListener,并且您必须将您的听众与JLabel相关联,这就更有意义了。 JLabel是自己的倾听者这一事实并不能免除你的责任。

答案 1 :(得分:2)

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

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

    addMouseListener(this);

答案 2 :(得分:2)

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

addMouseListener(this);