event
ComponentListener example
With this example we are going to see how to use a ComponentListener in order to monitor the window events in our Java Application. This may be useful when you want your application to react differently depending on the position or the kind of movement of the window.
In short, to work with the ComponentListener interface, one should follow these steps:
- Create a class that implements
ComponentListener. - Override the methods that correspond to the events that you want to monitor about the window movement e.g,
componentHidden,componentMoved,componentResized,componentShownand customize as you wish the handling of the respective events. Now every time the user interacts with the window, the corresponding method will be executed. - Use
addComponentListenerto add theComponentListenerto the component you wish to monitor.
package com.javacodegeeks.snippets.desktop;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
public class Component {
public static void main(String args[]) {
JFrame jFrame = new JFrame();
Container cPane = jFrame.getContentPane();
ComponentListener componenetListener = new ComponentListener() {
@Override
public void componentHidden(ComponentEvent event) {
dump("Hidden", event);
}
@Override
public void componentMoved(ComponentEvent event) {
dump("Moved", event);
}
@Override
public void componentResized(ComponentEvent event) {
dump("Resized", event);
}
@Override
public void componentShown(ComponentEvent event) {
dump("Shown", event);
}
private void dump(String str, ComponentEvent event) {
System.out.println(event.getComponent().getName() + " : " + str);
}
};
JButton lbutton = new JButton("Left");
lbutton.setName("Left");
lbutton.addComponentListener(componenetListener);
final JButton lright = new JButton("Right");
lright.setName("Right");
lright.addComponentListener(componenetListener);
ActionListener action = new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
lright.setVisible(!lright.isVisible());
}
};
lbutton.addActionListener(action);
JSplitPane splitBar = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true,
lbutton, lright);
cPane.add(splitBar, BorderLayout.CENTER);
jFrame.setSize(500, 400);
jFrame.setVisible(true);
}
}
This was an example on how to work with ComponentListener in Java.

