Mega Code Archive

 
Categories / Java Tutorial / Swing Event
 

Listening to JComponent Events with a VetoableChangeListener

import java.awt.BorderLayout; import java.beans.PropertyChangeEvent; import java.beans.PropertyVetoException; import java.beans.VetoableChangeListener; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JInternalFrame; public class VetoableChangeListenerDemo {   public static void main(final String args[]) {     JFrame frame = new JFrame();     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     JDesktopPane desktop = new JDesktopPane();     JInternalFrame palette = new JInternalFrame("Palette", true, true, true, true);     palette.addVetoableChangeListener(new IconPolice());     palette.setBounds(350, 150, 100, 100);     desktop.add(palette, JDesktopPane.PALETTE_LAYER);     palette.setVisible(true);     frame.add(desktop, BorderLayout.CENTER);     frame.setSize(500, 300);     frame.setVisible(true);   } } class IconPolice implements VetoableChangeListener {   public void vetoableChange(PropertyChangeEvent ev) throws PropertyVetoException {     String name = ev.getPropertyName();     if (name.equals(JInternalFrame.IS_ICON_PROPERTY) && (ev.getNewValue() == Boolean.TRUE)) {       System.out.println("JInternalFrame.IS_ICON_PROPERTY");     }   } }