Swing : DeskTop Pane

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


No comments:

Popular Posts