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);
}
}
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);
}
}
No comments:
Post a Comment