MouseListener似乎不适合我

Rob*_*ert 2 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){}


}
Run Code Online (Sandbox Code Playgroud)

Ern*_*ill 6

你的JLabel工具MouseListener,但你还需要告诉它JLabel发送事件给自己.在构造函数的最后你需要说

addMouseListener(this);
Run Code Online (Sandbox Code Playgroud)

如果你记得你可以把任何一个班级变成一个MouseListener,你就必须把你的听众连接到你的JLabel.事实上,这JLabel是自己的倾听者并不能免除你的责任.

  • 当然,你可以测试`java.lang.Math.random()`是否小于0.5; 一半时间都是如此. (2认同)