2012-02-07 8 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

+0

을 사용하게하지 마십시오. 내가 졸업 할 때 나는 이클립스/넷빈을 처음부터 사용하는 법을 배워야 만한다. – Robert

답변

6

귀하의 JLabel 구현 MouseListener,하지만 당신은 그 자체로 이벤트를 보내기 위해 JLabel 말할 필요가있다. 생성자의 끝에서 당신은 당신이 MouseListener어떤 클래스를 만들 수 있다는 것을 기억한다면

addMouseListener(this); 

이 더 의미가 말을해야합니다, 당신은 당신의 JLabel에 수신기를 연결해야 할 것 . JLabel이 자체 청취자라는 사실은 귀하의 책임을 면제하지 않습니다.

+0

젠장, 마지막 실험실에서 내가 한 것을보고 여전히 그것을 잊어 버렸다. 감사합니다. – Robert

+0

클릭 할 때마다 임의의 참/거짓을 구할 수 있습니까? – Robert

+2

물론 java.lang.Math.random()이 0.5 미만인지 테스트 할 수 있습니다. 그 시간의 절반 정도는 사실 일 겁니다. –

2

레이블에 MouseListener를 추가하지 않았습니다.

addMouseListener(this); 
2

당신이 당신의 JLabel의 마우스 리스너를 추가해야하기 때문이다 :

이 작업을 수행하려면 다음 코드를 추가합니다. 귀하의 생성자에 추가 :

addMouseListener(this); 
관련 문제