InternalFrameTest.java Source code

Java tutorial

Introduction

Here is the source code for InternalFrameTest.java

Source

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);
        }
    }
}