LAB ACTIVITY 3H
EVENT HANDLING
EVENT HANDLING
Learning Outcomes
By the end of this lab, students should be able to :
Write Java programs using Event Handling
Write Java programs using Event Handling with GUI Components
Hardware/ Software : Personal Computer, Java Development Kit version X.x.x., NetBeans IDE 12.0
LAB ACTIVITY 3H
Activity Outcome: Student know how to create event handling program for Mouse Track.
CREATE New Project name as MouseTracker
i. Type the following code:
package mousetracker;
import java.awt.*;
import javax.swing.*;
public class MouseTracker extends JFrame{
private JLabel statusBar;
public MouseTracker(){
super("Demonstrating Mouse Event");
statusBar = new JLabel();
getContentPane().add(statusBar, BorderLayout.SOUTH);
setSize(375, 100);
setVisible(true);
}
public static void main(String args[]) {
MouseTracker application = new MouseTracker();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
ii. Declaration of the event handler class
a) Add package java.awt.event.*;
b) implements MouseListener, MouseMotionListener
example image:
iii. Registers an instance of the event handler class
addMouseListener(this);
addMouseMotionListener(this);
example image:
iv. Implements the methods in the listener interface.
public void mouseClicked(MouseEvent event)
{
statusBar.setText("Clicked at [" + event.getX() + ", " + event.getY() + "]");
}
public void mousePressed(MouseEvent event)
{
statusBar.setText("Pressed at [" + event.getX() + ", " + event.getY() + "]");
}
public void mouseReleased(MouseEvent event)
{
statusBar.setText("Released at [" + event.getX() + ", " + event.getY() + "]");
}
public void mouseEntered(MouseEvent event)
{
statusBar.setText("Mouse Entered at [" + event.getX() + ", " + event.getY() + "]");
getContentPane().setBackground(Color.GREEN);
}
public void mouseExited(MouseEvent event)
{
statusBar.setText("Mouse outside window");
getContentPane().setBackground(Color.WHITE);
}
public void mouseDragged(MouseEvent event)
{
statusBar.setText("Dragged at [" + event.getX() + ", " + event.getY() + "]");
}
public void mouseMoved(MouseEvent event)
{
statusBar.setText("Moved at [" + event.getX() + ", " + event.getY() + "]");
}
example image:
FULL CODE & EXAMPLE GUI OUTPUT :
package mousetracker;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MouseTracker extends JFrame implements MouseListener, MouseMotionListener{
private JLabel statusBar;
public MouseTracker(){
super("Demonstrating Mouse Event");
statusBar = new JLabel();
getContentPane().add(statusBar, BorderLayout.SOUTH);
addMouseListener(this);
addMouseMotionListener(this);
setSize(375, 100);
setVisible(true);
}
public static void main(String args[]) {
MouseTracker application = new MouseTracker();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void mouseClicked(MouseEvent event)
{
statusBar.setText("Clicked at [" + event.getX() + ", " + event.getY() + "]");
}
public void mousePressed(MouseEvent event)
{
statusBar.setText("Pressed at [" + event.getX() + ", " + event.getY() + "]");
}
public void mouseReleased(MouseEvent event)
{
statusBar.setText("Released at [" + event.getX() + ", " + event.getY() + "]");
}
public void mouseEntered(MouseEvent event)
{
statusBar.setText("Mouse Entered at [" + event.getX() + ", " + event.getY() + "]");
getContentPane().setBackground(Color.GREEN);
}
public void mouseExited(MouseEvent event)
{
statusBar.setText("Mouse outside window");
getContentPane().setBackground(Color.WHITE);
}
public void mouseDragged(MouseEvent event)
{
statusBar.setText("Dragged at [" + event.getX() + ", " + event.getY() + "]");
}
public void mouseMoved(MouseEvent event)
{
statusBar.setText("Moved at [" + event.getX() + ", " + event.getY() + "]");
}
}
OUTPUT : (Move, Click, Drag or Release mouse on Frame to show result at Label on interface)
LAB ACTIVITY 3I
Activity Outcome: Student know how to create event handling program for MouseMotionListener.
CREATE New Project name as Painter
i. Type the following code:
package painter;
import java.awt.*;
import javax.swing.*;
public class Painter extends JFrame{
private int pointCount = 0;
private Point points[] = new Point[1000];
public Painter(){
super("A simple paint program");
getContentPane().add(new JLabel("Drag the mouse to draw"),
BorderLayout.SOUTH);
setSize(300, 150);
setVisible(true);
}
public static void main(String args[]){
Painter application = new Painter();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
ii. Declaration of the event handler class
a) Add package java.awt.event.*;
b) addMouseMotionListener
addMouseMotionListener(
new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent event)
{
if (pointCount < points.length)
{
points[pointCount] = event.getPoint();
++pointCount;
repaint();
}
}
} );
example image:
iii. Create effect public class using by mouse
public void paint(Graphics g){
super.paint(g);
for(int i=0; i< points.length && points[i] != null; i++)
g.fillOval(points[i].x, points[i].y, 4, 4);
}
example image:
FULL CODE & EXAMPLE GUI OUTPUT :
package painter;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Painter extends JFrame{
private int pointCount = 0;
private Point points[] = new Point[1000];
public Painter(){
super("A simple paint program");
getContentPane().add(new JLabel("Drag the mouse to draw"),
BorderLayout.SOUTH);
addMouseMotionListener(
new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent event)
{
if (pointCount < points.length)
{
points[pointCount] = event.getPoint();
++pointCount;
repaint();
}
}
} );
setSize(300, 150);
setVisible(true);
}
public void paint(Graphics g){
super.paint(g);
for(int i=0; i< points.length && points[i] != null; i++)
g.fillOval(points[i].x, points[i].y, 4, 4);
}
public static void main(String args[]){
Painter application = new Painter();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
OUTPUT : (Move and Click mouse on Frame to show graphic line)