Mega Code Archive

 
Categories / Java / Event
 

Demonstrating the InternalFrameListener

import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JLayeredPane; import javax.swing.event.InternalFrameEvent; import javax.swing.event.InternalFrameListener; public class InternalFrameTest {   public static void main(String args[]) {     JFrame frame = new JFrame("Internal Frame Listener");     Container contentPane = frame.getContentPane();     JLayeredPane desktop = new JDesktopPane();     desktop.setOpaque(false);     desktop.add(createLayer("One"), JLayeredPane.POPUP_LAYER);     desktop.add(createLayer("Two"), JLayeredPane.DEFAULT_LAYER);     desktop.add(createLayer("Three"), JLayeredPane.PALETTE_LAYER);     contentPane.add(desktop, BorderLayout.CENTER);     frame.setSize(300, 300);     frame.show();   }   static JInternalFrame createLayer(String label) {     return new SelfInternalFrame(label);   }   static class SelfInternalFrame extends JInternalFrame {     InternalFrameListener listener = new InternalFrameListener() {       public void internalFrameActivated(InternalFrameEvent e) {         dumpInfo("Activated", e);       }       public void internalFrameClosed(InternalFrameEvent e) {         dumpInfo("Closed", e);       }       public void internalFrameClosing(InternalFrameEvent e) {         dumpInfo("Closing", e);       }       public void internalFrameDeactivated(InternalFrameEvent e) {         dumpInfo("Deactivated", e);       }       public void internalFrameDeiconified(InternalFrameEvent e) {         dumpInfo("Deiconified", e);       }       public void internalFrameIconified(InternalFrameEvent e) {         dumpInfo("Iconified", e);       }       public void internalFrameOpened(InternalFrameEvent e) {         dumpInfo("Opened", e);       }       private void dumpInfo(String s, InternalFrameEvent e) {         System.out.println("Source: " + e.getInternalFrame().getName()             + " : " + s);       }     };     public SelfInternalFrame(String s) {       getContentPane().add(new JLabel(s, JLabel.CENTER),           BorderLayout.CENTER);       setName(s);       addInternalFrameListener(listener);       setBounds(50, 50, 100, 100);       setResizable(true);       setClosable(true);       setMaximizable(true);       setIconifiable(true);       setTitle(s);       setVisible(true);     }   } }