public InternalFrameDemo() { super("InternalFrameDemo"); //Make the big window be indented 50 pixels from each edge //of the screen. int inset = 50; Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setBounds(inset, inset, screenSize.width - inset*2, screenSize.height-inset*2); //Quit this app when the big window closes. addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); //Set up the GUI. desktop = new JDesktopPane(); //a specialized layered pane createFrame(); //Create first window setContentPane(desktop); setJMenuBar(createMenuBar()); //Make dragging faster: 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() { MyInternalFrame frame = new MyInternalFrame(); frame.setVisible(true); //necessary as of kestrel desktop.add(frame); try { frame.setSelected(true); } catch (java.beans.PropertyVetoException e) {
} } public static void main(String[] args) { InternalFrameDemo frame = new InternalFrameDemo(); frame.setVisible(true); } } //////////////// import javax.swing.JInternalFrame;import java.awt.event.*; import java.awt.*;public class MyInternalFrame extends JInternalFrame { static int openFrameCount = 0; static final int xOffset = 30, yOffset = 30; public MyInternalFrame() { super("Document #" + (++openFrameCount), true, //resizable true, //closable true, //maximizable true);//iconifiable //...Create the GUI and put it in the window... //...Then set the window size or call pack... setSize(300,300); //Set the window's location. // setLocation(xOffset*openFrameCount, yOffset*openFrameCount); } }
multi threads
implements Runnable interface
import javax.swing.JDesktopPane;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JFrame;import java.awt.event.*;
import java.awt.*;public class InternalFrameDemo extends JFrame
{
JDesktopPane desktop;
public InternalFrameDemo()
{
super("InternalFrameDemo");
//Make the big window be indented 50 pixels from each edge
//of the screen.
int inset = 50;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(inset, inset, screenSize.width - inset*2, screenSize.height-inset*2);
//Quit this app when the big window closes.
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//Set up the GUI.
desktop = new JDesktopPane(); //a specialized layered pane
createFrame(); //Create first window
setContentPane(desktop);
setJMenuBar(createMenuBar());
//Make dragging faster:
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()
{
MyInternalFrame frame = new MyInternalFrame();
frame.setVisible(true); //necessary as of kestrel
desktop.add(frame);
try
{
frame.setSelected(true);
}
catch (java.beans.PropertyVetoException e)
{
}
} public static void main(String[] args)
{
InternalFrameDemo frame = new InternalFrameDemo();
frame.setVisible(true);
}
}
////////////////
import javax.swing.JInternalFrame;import java.awt.event.*;
import java.awt.*;public class MyInternalFrame extends JInternalFrame
{
static int openFrameCount = 0;
static final int xOffset = 30, yOffset = 30; public MyInternalFrame()
{
super("Document #" + (++openFrameCount),
true, //resizable
true, //closable
true, //maximizable
true);//iconifiable
//...Create the GUI and put it in the window...
//...Then set the window size or call pack...
setSize(300,300);
//Set the window's location.
// setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
}
}