簡體   English   中英

MouseListener似乎不適合我

[英]MouseListener doesn't appear to be working for me

我需要在我的講師的前言下,不要讓我們使用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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM