package org.kodejava.swing;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class MouseClickEventDemo extends JFrame {
public MouseClickEventDemo() {
initComponents();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new MouseClickEventDemo().setVisible(true));
}
private void initComponents() {
setTitle("Handling Mouse Click Event");
setSize(500, 500);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
final JTextArea textArea = new JTextArea();
textArea.setText("Click Me!");
textArea.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.NOBUTTON) {
textArea.setText("No button clicked" + "\n");
} else if (e.getButton() == MouseEvent.BUTTON1) {
textArea.setText("Button 1 clicked" + "\n");
} else if (e.getButton() == MouseEvent.BUTTON2) {
textArea.setText("Button 2 clicked" + "\n");
} else if (e.getButton() == MouseEvent.BUTTON3) {
textArea.setText("Button 3 clicked" + "\n");
}
textArea.append("Number of click: " + e.getClickCount() + "\n");
textArea.append("Click position (X, Y): " + e.getX() + ", " + e.getY());
}
});
getContentPane().add(textArea);
}
}
Author: Wayan
How do I handle mouse wheel event?
package org.kodejava.swing;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import java.awt.event.MouseWheelEvent;
public class MouseWheelListenerDemo extends JFrame {
public MouseWheelListenerDemo() {
initComponents();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new MouseWheelListenerDemo().setVisible(true));
}
private void initComponents() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setTitle("Mouse Wheel Listener Demo");
setSize(500, 500);
JTextArea textArea = new JTextArea();
textArea.addMouseWheelListener(e -> {
System.out.println("MouseWheelListenerDemo.mouseWheelMoved");
// If wheel rotation value is a negative it means rotate up, while
// positive value means rotate down
if (e.getWheelRotation() < 0) {
System.out.println("Rotated Up... " + e.getWheelRotation());
} else {
System.out.println("Rotated Down... " + e.getWheelRotation());
}
// Get scrolled unit amount
System.out.println("ScrollAmount: " + e.getScrollAmount());
// WHEEL_UNIT_SCROLL representing scroll by unit such as the
// arrow keys. WHEEL_BLOCK_SCROLL representing scroll by block
// such as the page-up or page-down key.
if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {
System.out.println("MouseWheelEvent.WHEEL_UNIT_SCROLL");
}
if (e.getScrollType() == MouseWheelEvent.WHEEL_BLOCK_SCROLL) {
System.out.println("MouseWheelEvent.WHEEL_BLOCK_SCROLL");
}
});
getContentPane().add(textArea);
}
}
The scrolling the mouse wheel the code snippet will print something like:
MouseWheelListenerDemo.mouseWheelMoved
Rotated Down... 1
ScrollAmount: 3
MouseWheelEvent.WHEEL_UNIT_SCROLL
MouseWheelListenerDemo.mouseWheelMoved
Rotated Up... -1
ScrollAmount: 3
MouseWheelEvent.WHEEL_UNIT_SCROLL
How do I handle mouse motion event?
package org.kodejava.swing;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
public class MouseMotionListenerDemo extends JFrame {
public MouseMotionListenerDemo() {
initComponents();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new MouseMotionListenerDemo().setVisible(true));
}
private void initComponents() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(500, 500);
JTextArea textArea = new JTextArea("Hello World... try to move the mouse, click and drag it...");
textArea.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
System.out.println("Mouse Dragged...");
}
public void mouseMoved(MouseEvent e) {
System.out.println("Mouse Moved...");
}
});
getContentPane().add(textArea);
}
}
How do I handle mouse event in Swing?
package org.kodejava.swing;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class MouseListenerDemo extends JFrame {
public MouseListenerDemo() {
initComponents();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new MouseListenerDemo().setVisible(true));
}
private void initComponents() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setTitle("Mouse Event Handling");
setSize(500, 500);
JTextArea textArea = new JTextArea();
textArea.setText("Press the mouse button...");
MouseAdapter mouseAdapter = new MyMouseAdapter();
textArea.addMouseListener(mouseAdapter);
getContentPane().add(textArea);
}
private static class MyMouseAdapter extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
System.out.println("MouseListenerDemo.mouseClicked");
}
public void mousePressed(MouseEvent e) {
System.out.println("MouseListenerDemo.mousePressed");
}
public void mouseReleased(MouseEvent e) {
System.out.println("MouseListenerDemo.mouseReleased");
}
public void mouseEntered(MouseEvent e) {
System.out.println("MouseListenerDemo.mouseEntered");
}
public void mouseExited(MouseEvent e) {
System.out.println("MouseListenerDemo.mouseExited");
}
}
}
How do I get the system look and feel?
The UIManager.getSystemLookAndFeelClassName() method returns the current system LAF (Look and Feel) for Swing application. Do not forget to call the SwingUtilities.updateComponentTreeUI() method after setting the LAF to update the current application look and feel.
package org.kodejava.swing;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
public class SystemLAFDemo {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(500, 500);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setTitle("System LAF Demo");
try {
// Use the system look and feel for the swing application
String className = UIManager.getSystemLookAndFeelClassName();
System.out.println("className = " + className);
UIManager.setLookAndFeel(className);
} catch (Exception e) {
e.printStackTrace();
}
SwingUtilities.updateComponentTreeUI(frame);
frame.setVisible(true);
}
}


