Mega Code Archive

 
Categories / Java / Swing JFC
 

Working with Internal Frames within a Desktop

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; public class InternalTest {   public static void main(String args[]) {     JFrame frame = new JFrame();     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 {     public SelfInternalFrame(String s) {       getContentPane().add(new JLabel(s, JLabel.CENTER),           BorderLayout.CENTER);       setBounds(50, 50, 100, 100);       setResizable(true);       setClosable(true);       setMaximizable(true);       setIconifiable(true);       setTitle(s);       setVisible(true);     }   } }