2012-02-07 125 views
2

我需要与我的导师前言,不让我们使用IDE的。我们使用TextPad。我想点击这个标签,然后从“H”变为“T”。目前当我点击标签时什么都不做。我忘了什么?MouseListener似乎没有为我工作

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){} 


} 
+0

“我的教练没有让我们使用IDE的” *呻吟* – millimoose 2012-02-07 02:24:21

+0

告诉我吧。当我毕业时,我将不得不学习如何从头开始使用eclipse/netbeans – Robert 2012-02-07 02:29:26

回答

6

JLabel工具MouseListener,但你也需要告诉JLabel事件发送到自身。在构造函数的最后,你会需要说

addMouseListener(this); 

如果你还记得,你可以做任何MouseListener这更有意义,你不得不监听器连接到您的JLabelJLabel是自己的听众的事实并不免除你的责任。

+0

废话我在上一个实验中看到了,但仍然忘记了。谢谢 – Robert 2012-02-07 02:21:33

+0

每次点击都可能得到一个随机的True/False吗? – Robert 2012-02-07 02:26:23

+2

当然,你可以测试java.lang.Math.random()是否小于0.5;大约一半的时间将会是真的。 – 2012-02-07 02:50:08

2

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

要做到这一点,只需添加以下代码:

addMouseListener(this); 
2

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

addMouseListener(this);