import javax.swing.*; import java.awt.event.*; import java.awt.*; public class InternalFrameEx extends JFrame { JDesktopPane desktop; public InternalFrameEx() { super("Internal Frame Example"); int inset = 50; Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); setBounds(inset,inset,screenSize.width - inset*2,screenSize.height-inset*2); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); desktop = new JDesktopPane(); createFrame(); setContentPane(desktop); setJMenuBar(createMenuBar()); desktop.putClientProperty("JDesktopPane.dragMode","outline"); } protected JMenuBar createMenuBar() { JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("Document"); menu.setMnemonic(KeyEvent.VK_D); JMenuItem menuItem = new JMenuItem("New"); menuItem.setMnemonic(KeyEvent.VK_N); menuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { createFrame(); } }); menu.add(menuItem); menuBar.add(menu); return menuBar; } protected void createFrame() { InternalFrame frame = new InternalFrame(); frame.setVisible(true); desktop.add(frame); try { frame.setSelected(true); } catch (java.beans.PropertyVetoException e) {} } public static void main(String[] args) { InternalFrameEx frame = new InternalFrameEx(); frame.setVisible(true); } }