PropertyChangeListener Sample
public class PropertyChangeListenerTest {
public static void main(String args[]) {
JFrame frame = new JFrame("PropertyChangeListener Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton button = new JButton("Click Me");
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
JButton button = (JButton) actionEvent.getSource();
int red = (int) (Math.random() * 255);
int green = (int) (Math.random() * 255);
int blue = (int) (Math.random() * 255);
button.setBackground(new Color(red, green, blue));
}
};
PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
String property = propertyChangeEvent.getPropertyName();
if ("background".equals(property)) {
button.setBackground((Color) propertyChangeEvent
.getNewValue());
}
}
};
button.addActionListener(actionListener);
button.addPropertyChangeListener(propertyChangeListener);
frame.getContentPane().add(button, BorderLayout.NORTH);
frame.setSize(300, 100);
frame.setVisible(true);
}
}
public static void main(String args[]) {
JFrame frame = new JFrame("PropertyChangeListener Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton button = new JButton("Click Me");
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
JButton button = (JButton) actionEvent.getSource();
int red = (int) (Math.random() * 255);
int green = (int) (Math.random() * 255);
int blue = (int) (Math.random() * 255);
button.setBackground(new Color(red, green, blue));
}
};
PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
String property = propertyChangeEvent.getPropertyName();
if ("background".equals(property)) {
button.setBackground((Color) propertyChangeEvent
.getNewValue());
}
}
};
button.addActionListener(actionListener);
button.addPropertyChangeListener(propertyChangeListener);
frame.getContentPane().add(button, BorderLayout.NORTH);
frame.setSize(300, 100);
frame.setVisible(true);
}
}
浙公网安备 33010602011771号