Mega Code Archive

 
Categories / Java by API / Java Beans
 

PropertyChangeEvent

import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Random; import javax.swing.JButton; import javax.swing.JFrame; public class MainClass {   public static void main(String args[]) {     JFrame frame = new JFrame("Button Sample");     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     final JButton button1 = new JButton("Select Me");     final JButton button2 = new JButton("No Select Me");     final Random random = new Random();     ActionListener actionListener = new ActionListener() {       public void actionPerformed(ActionEvent actionEvent) {         JButton button = (JButton) actionEvent.getSource();         int red = random.nextInt(255);         int green = random.nextInt(255);         int blue = random.nextInt(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)) {           button2.setBackground((Color) propertyChangeEvent.getNewValue());         }       }     };     button1.addActionListener(actionListener);     button1.addPropertyChangeListener(propertyChangeListener);     button2.addActionListener(actionListener);     frame.add(button1, BorderLayout.NORTH);     frame.add(button2, BorderLayout.SOUTH);     frame.setSize(300, 100);     frame.setVisible(true);   } }