I need to preface this with my instructor doesn’t let us use IDE’s. We use TextPad. I want to click on this label and it then change from “H” to “T”. Currently when I click the label does nothing. What am I forgetting?
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){}
}
Your
JLabelimplementsMouseListener, but you also need to tell theJLabelto send events to itself. At the end of the constructor you’ll need to sayThis makes more sense if you remember that you can make any class into a
MouseListener, and you’d have to connect your listener to yourJLabel. The fact that theJLabelis its own listener doesn’t absolve you of this responsibility.