2012-02-07 123 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);