Honhar Engineer

Honhar Engineer
Thanks for visiting,stay connected for more updates !

Monday, August 12, 2013

Java program for understanding Mouse Listeners

import java.awt.EventQueue;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.Color;
import javax.swing.BorderFactory;
import javax.swing.border.Border;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelListener;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseMotionListener;

public class MouseLabel {

    JLabel mouseLabel;
    JLabel mouseMoveLabel;
    JTextArea mouseEvents;
   
    //Note: Typically the main method will be in a
    //separate class. As this is a simple one class
    //example it's all in the one class.
    public static void main(String[] args) {
    
         //Use the event dispatch thread for Swing components
         EventQueue.invokeLater(new Runnable()
         {
            
            @Override
             public void run()
             {
                
                 new MouseLabel();        
             }
         });
             
    }
   
    public MouseLabel()
    {
        JFrame guiFrame = new JFrame();
       
        //make sure the program exits when the frame closes
        guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        guiFrame.setTitle("Mouse Event Example");
        guiFrame.setSize(700,300);
     
        //This will center the JFrame in the middle of the screen
        guiFrame.setLocationRelativeTo(null);
       
        //creating a border to highlight the label areas
        Border outline = BorderFactory.createLineBorder(Color.black);
       
        //mouseLabel will trigger the Mouse click evetns
        mouseLabel = new JLabel("Interactive Label", JLabel.CENTER);
        mouseLabel.setBorder(outline);
       
        //Attach the MouseListener to mouseLabel
        //as an anonymous inner class.
        //Each method changes the test of mouseLabel and
        //logs the mouse event in the JTextArea
        mouseLabel.addMouseListener(new MouseListener()
        {
           
            @Override
            public void mouseClicked(MouseEvent e)
            {
               
                mouseLabel.setText("I've been clicked!");
                mouseEvents.append("MouseClicked Event");
                mouseEvents.append(e.getClickCount() + " click(s)\n");
                mouseEvents.append("Xpos: " + e.getX() + " Ypos: " + e.getY() + "\n");
               
            }
            @Override
            public void mousePressed(MouseEvent e)
            {
               
                mouseLabel.setText("You're holding the mouse button aren't you?");
                mouseEvents.append("MousePressed Event\n");
            }
           
            @Override
            public void mouseExited(MouseEvent e)
            {
                mouseLabel.setText("The mouse has run away!");
                mouseEvents.append("MouseExited Event\n");
            }
           
            @Override
            public void mouseEntered(MouseEvent e)
            {
               
                mouseLabel.setText("I can feel the presence of the Mouse");
                mouseEvents.append("MouseEntered Event\n");
            }
           
            @Override
            public void mouseReleased(MouseEvent e)
            {
               
                mouseLabel.setText("You've let go of the mouse button");
                mouseEvents.append("MouseReleased Event\n");
            }
           
        });
       
        //mouseMoveLabel triggers the mouse motion events
        mouseMoveLabel = new JLabel("Drag the Mouse!");
        mouseMoveLabel.setBorder(outline);
       
        //Attach the MouseMotionListener to mouseMoveLabel
        //as an anonymous inner class.
        //Each method logs the events triggered in the JTextArea
        mouseMoveLabel.addMouseMotionListener(new MouseMotionListener(){
            @Override
            public void mouseDragged(MouseEvent e)
            {          
                mouseEvents.append("MouseDragged Event\n");
            }

            @Override
            public void mouseMoved(MouseEvent e)
            {
                mouseEvents.append("MouseMoved Event\n");
               
            }
       
        });
       
       
        mouseEvents = new JTextArea("The Mouse events can be seen here:\n");
       
        //Place the JTextArea into a JScrollPane to be able to scroll
        //through all the events logged. It's also perfect for listening
        //for MouseWheelListener events
        JScrollPane textScroll = new JScrollPane(mouseEvents);
       
        //Attach the MouseWheelListener to textScroll
        //as an anonymous inner class.
        //As some many events are fired by the mouse moving the method
        //just changes the text of mouseLabel rather than logging them
        //all in the JTextArea.
        textScroll.addMouseWheelListener(new MouseWheelListener(){
       
            @Override
            public void mouseWheelMoved(MouseWheelEvent e)
            {
                mouseLabel.setText("You've moved the mouse wheel");
            }
       
        });
       
        guiFrame.add(mouseMoveLabel, BorderLayout.WEST);
        guiFrame.add(mouseLabel, BorderLayout.CENTER);
        guiFrame.add(textScroll, BorderLayout.EAST);
        guiFrame.setVisible(true);
    }
    }
Do you Like this story..?

Get Free Email Updates Daily!

Follow us!

No comments:

Post a Comment