How to set Palette Layer for JDesktopPane in Java?


At first, create a JDesktopPane −

JDesktopPane desktopPane = new JDesktopPane();

Now, create an Internal Frame −

JInternalFrame intFrame = new JInternalFrame("Our Frame", true, true, true, true);
intFrame.setBounds(50, 90, 200, 250);

Set Pallette layer for JDesktopPane and add the Internal Frame to JDesktopPane −

intFrame.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);
desktopPane.add(intFrame,JDesktopPane.PALETTE_LAYER);

The following is an example to set palette layer for JDesktopPane −

package my;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
public class SwingDemo {
   public static void main(final String[] args) {
      JFrame frame = new JFrame("Demo");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      JDesktopPane desktopPane = new JDesktopPane();
      JInternalFrame intFrame = new JInternalFrame("Our Frame", true, true, true, true);
      intFrame.setBounds(50, 90, 200, 250);
      intFrame.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);
      desktopPane.add(intFrame,JDesktopPane.PALETTE_LAYER);
      JLabel label = new JLabel(intFrame.getTitle(), JLabel.CENTER);
      JButton button = new JButton("Demo Button");
      intFrame.add(label, BorderLayout.CENTER);
      intFrame.add(button, BorderLayout.WEST);
      intFrame.setVisible(true);
      frame.add(desktopPane, BorderLayout.CENTER);
      frame.setSize(600, 500);
      frame.setVisible(true);
   }
}

Output

Maximize the Internal Frame −

Updated on: 30-Jul-2019

119 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements