In swing API, JDeskTopPane is the container used to create a display area where multiple-document may be placed. So virtually, it works like a desktop where we can place anther component.
It has two properties
public static final int LIVE_DRAG_MODE
this indicates that while dragging components, they should be inside the desktop.
public static final int OUTLINE_DRAG_MODE
this indicates that component inside the desktop may be dragged out side of desktop pane.
Internal Frame
You can create graphical interface that has the windows insides another window. This is done in java by using JInternalFrame class. Internal frame can be moved and resized independently. This is used to create the MDI application.
According to java specification, it has the following different types of constructors
JInternalFrame
()
Creates a non-resizable, non-closable, non-maximizable, non-iconifiable
JInternalFrame
with no title.JInternalFrame
(String title)
Creates a non-resizable, non-closable, non-maximizable, non-iconifiable
JInternalFrame
with the specified title.JInternalFrame
(String title, boolean resizable)
Creates a non-closable, non-maximizable, non-iconifiable
JInternalFrame
with the specified title and resizability.JInternalFrame
(String title, boolean resizable, boolean closable)
Creates a non-maximizable, non-iconifiable
JInternalFrame
with the specified title, resizability, and closability.JInternalFrame
(String title, boolean resizable, boolean closable, boolean maximizable)
Creates a non-iconifiable
JInternalFrame
with the specified title, resizability, closability, and maximizability.JInternalFrame
(String title, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable)
Creates a
JInternalFrame
with the specified title, resizability, closability, maximizability, and iconifiability.Now we can use the JDesktopPane to handle the JInternalFrame.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class InternalFrameDemo
{
public static void main(String ar[])
{
JFrame frame=new JFrame("");
JDesktopPane desktop=new JDesktopPane();
desktop.add(new InFrame("Frame 1"));
desktop.add(new InFrame("Frame 2"));
desktop.add(new InFrame("Frame 3"));
frame.add(desktop, BorderLayout.CENTER);
frame.setContentPane(desktop);
frame.setBounds(200,100,400,300);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setVisible(true);
}
}
class InFrame extends JInternalFrame
{
InFrame(String s)
{
setTitle(s);
setSize(300,200);
setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;
class InternalFrameDemo
{
public static void main(String ar[])
{
JFrame frame=new JFrame("");
JDesktopPane desktop=new JDesktopPane();
desktop.add(new InFrame("Frame 1"));
desktop.add(new InFrame("Frame 2"));
desktop.add(new InFrame("Frame 3"));
frame.add(desktop, BorderLayout.CENTER);
frame.setContentPane(desktop);
frame.setBounds(200,100,400,300);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setVisible(true);
}
}
class InFrame extends JInternalFrame
{
InFrame(String s)
{
setTitle(s);
setSize(300,200);
setVisible(true);
}
}
Comments