Property Event-Delegation
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.BorderLayout;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
class BoundFrame extends JFrame {
private JButton button1;
private JButton button2;
private Random random;
public BoundFrame() {
initialize();
}
private void initialize() {
button1 = new JButton("Select Me");
button2 = new JButton("No Select Me");
random = new Random();
button1.addActionListener(new ButtonListener());
button1.addPropertyChangeListener(new PropertyListener());
button2.addActionListener(new ButtonListener());
add(button1, BorderLayout.NORTH);
add(button2, BorderLayout.SOUTH);
setTitle("Property Change Listener");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 100);
setVisible(true);
}
private class PropertyListener implements PropertyChangeListener {
@Override
public void propertyChange(PropertyChangeEvent e) {
String property = e.getPropertyName();
if ("background".equals(property))
button2.setBackground((Color)e.getNewValue());
}
}
private class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton)e.getSource();
int red = random.nextInt(255);
int green = random.nextInt(255);
int blue = random.nextInt(255);
button.setBackground(new Color(red, green, blue));
}
}
}
public class BoundSample {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new BoundFrame();
}
});
}
}
import javax.swing.JButton;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.BorderLayout;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
class BoundFrame extends JFrame {
private JButton button1;
private JButton button2;
private Random random;
public BoundFrame() {
initialize();
}
private void initialize() {
button1 = new JButton("Select Me");
button2 = new JButton("No Select Me");
random = new Random();
button1.addActionListener(new ButtonListener());
button1.addPropertyChangeListener(new PropertyListener());
button2.addActionListener(new ButtonListener());
add(button1, BorderLayout.NORTH);
add(button2, BorderLayout.SOUTH);
setTitle("Property Change Listener");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 100);
setVisible(true);
}
private class PropertyListener implements PropertyChangeListener {
@Override
public void propertyChange(PropertyChangeEvent e) {
String property = e.getPropertyName();
if ("background".equals(property))
button2.setBackground((Color)e.getNewValue());
}
}
private class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton)e.getSource();
int red = random.nextInt(255);
int green = random.nextInt(255);
int blue = random.nextInt(255);
button.setBackground(new Color(red, green, blue));
}
}
}
public class BoundSample {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new BoundFrame();
}
});
}
}
Comments
Post a Comment
Post Your Valuable Comments