MouseListener is not triggered when I am clicking

28 views Asked by At

MouseListener is not triggered when I am clicking. I first tried it without any labels and panel. It worked just fine as I could see the mouse coodinates and key pressed on my console. Here is the code for it:

//Write a program to handle key and mouse event

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class HandleEvent{
    public static void main(String args[]){
        Frame fr = new Frame("HandleEvent");
        fr.setSize(500,500);
        fr.setVisible(true);
        
        fr.addMouseListener(new MouseAdapter(){
            public void mouseClicked(MouseEvent e){
                System.out.println("(" + e.getX() + ", " + e.getY() + ")");
            }
        });
        
        fr.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e){
                System.out.println("Key Pressed: " + e.getKeyChar());
            }
        });
    }
}

Now I am trying to update the labels whenever I click or press key. The keyPressed() function works but my mouseClicked() is not being triggered when I click. Here is the code:

//Write a program to handle key and mouse event

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class HandleEvent{
    public static void main(String args[]){
        Frame fr = new Frame("HandleEvent");
        
        Panel pan = new Panel(new FlowLayout());
        
        Label lb1 = new Label("Mouse coordinates: (x, y)", Label.CENTER);
        Label lb2 = new Label("Key Pressed: *Press any key*", Label.CENTER);
        
        pan.add(lb1);
        pan.add(lb2);
        
        fr.add(pan);
        fr.setSize(500,500);
        fr.setVisible(true);
        
        fr.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e){
                lb1.setText("Mouse coordinates: (" + e.getX() + ", " + e.getY() + ")");
                System.out.println("Mouse clicked!");
                lb1.repaint();
            }
        });
        
        fr.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e){
                lb2.setText("Key Pressed: " + e.getKeyChar());
            }
        });
    }
}

I tried fr.setFocusable(true), fr.requestFocus(), fr.setEnabled(true) but it didn't work. I even tried other mouse events but it still didn't work.

0

There are 0 answers