<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FMDI</id>
		<title>Java/Swing JFC/MDI - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FMDI"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/MDI&amp;action=history"/>
		<updated>2026-04-19T08:38:48Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Swing_JFC/MDI&amp;diff=7379&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/MDI&amp;diff=7379&amp;oldid=prev"/>
				<updated>2010-06-01T06:41:37Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:41, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Swing_JFC/MDI&amp;diff=7378&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/MDI&amp;diff=7378&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Build multiple document interface by yourself ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.awt.event.WindowListener;&lt;br /&gt;
import java.util.Hashtable;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JLayeredPane;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.LookAndFeel;&lt;br /&gt;
import javax.swing.UIDefaults;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.border.Border;&lt;br /&gt;
import javax.swing.border.MatteBorder;&lt;br /&gt;
import javax.swing.event.MouseInputAdapter;&lt;br /&gt;
import javax.swing.plaf.BorderUIResource;&lt;br /&gt;
import javax.swing.plaf.ColorUIResource;&lt;br /&gt;
import javax.swing.plaf.ruponentUI;&lt;br /&gt;
import javax.swing.plaf.FontUIResource;&lt;br /&gt;
public class LayeredPaneDemo extends JFrame {&lt;br /&gt;
  public LayeredPaneDemo() {&lt;br /&gt;
    super(&amp;quot;&amp;quot;);&lt;br /&gt;
    setSize(570, 400);&lt;br /&gt;
    getContentPane().setBackground(new Color(244, 232, 152));&lt;br /&gt;
    getLayeredPane().setOpaque(true);&lt;br /&gt;
    InnerFrame[] frames = new InnerFrame[5];&lt;br /&gt;
    for (int i = 0; i &amp;lt; 5; i++) {&lt;br /&gt;
      frames[i] = new InnerFrame(&amp;quot;InnerFrame &amp;quot; + i);&lt;br /&gt;
      frames[i].setBounds(50 + i * 20, 50 + i * 20, 200, 200);&lt;br /&gt;
      getLayeredPane().add(frames[i]);&lt;br /&gt;
    }&lt;br /&gt;
    WindowListener l = new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    addWindowListener(l);&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new LayeredPaneDemo();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class InnerFrame extends JPanel {&lt;br /&gt;
  private static String IMAGE_DIR = &amp;quot;mdi&amp;quot; + java.io.File.separator;&lt;br /&gt;
  private static ImageIcon PRESS_RESTORE_BUTTON_ICON = new ImageIcon(&lt;br /&gt;
      IMAGE_DIR + &amp;quot;pressrestore.gif&amp;quot;);&lt;br /&gt;
  private static ImageIcon PRESS_ICONIZE_BUTTON_ICON = new ImageIcon(&lt;br /&gt;
      IMAGE_DIR + &amp;quot;pressiconize.gif&amp;quot;);&lt;br /&gt;
  private static final int WIDTH = 200;&lt;br /&gt;
  private static final int HEIGHT = 200;&lt;br /&gt;
  private static final int TITLE_BAR_HEIGHT = 25;&lt;br /&gt;
  private static Color TITLE_BAR_BG_COLOR = new Color(108, 190, 116);&lt;br /&gt;
  private String title;&lt;br /&gt;
  private JLabel titleLabel;&lt;br /&gt;
  private boolean isIconified;&lt;br /&gt;
  private JPanel titlePanel;&lt;br /&gt;
  private JPanel contentPanel;&lt;br /&gt;
  private JPanel buttonPanel;&lt;br /&gt;
  private JPanel buttonWrapperPanel;&lt;br /&gt;
  private InnerFrameButton iconizeButton;&lt;br /&gt;
  private InnerFrameButton closeButton;&lt;br /&gt;
  public InnerFrame(String t) {&lt;br /&gt;
    title = t;&lt;br /&gt;
    setLayout(new BorderLayout());&lt;br /&gt;
    createTitleBar();&lt;br /&gt;
    contentPanel = new JPanel();&lt;br /&gt;
    add(titlePanel, BorderLayout.NORTH);&lt;br /&gt;
    add(contentPanel, BorderLayout.CENTER);&lt;br /&gt;
  }&lt;br /&gt;
  public void toFront() {&lt;br /&gt;
    if (getParent() instanceof JLayeredPane)&lt;br /&gt;
      ((JLayeredPane) getParent()).moveToFront(this);&lt;br /&gt;
  }&lt;br /&gt;
  public void close() {&lt;br /&gt;
    if (getParent() instanceof JLayeredPane) {&lt;br /&gt;
      JLayeredPane jlp = (JLayeredPane) getParent();&lt;br /&gt;
      jlp.remove(InnerFrame.this);&lt;br /&gt;
      jlp.repaint();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void setIconified(boolean b) {&lt;br /&gt;
    isIconified = b;&lt;br /&gt;
    if (b) {&lt;br /&gt;
      setBounds(getX(), getY(), WIDTH, TITLE_BAR_HEIGHT);&lt;br /&gt;
    } else {&lt;br /&gt;
      setBounds(getX(), getY(), WIDTH, HEIGHT);&lt;br /&gt;
      revalidate();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isIconified() {&lt;br /&gt;
    return isIconified;&lt;br /&gt;
  }&lt;br /&gt;
  // Title Bar&lt;br /&gt;
  public void createTitleBar() {&lt;br /&gt;
    titlePanel = new JPanel() {&lt;br /&gt;
      public Dimension getPreferredSize() {&lt;br /&gt;
        return new Dimension(InnerFrame.WIDTH,&lt;br /&gt;
            InnerFrame.TITLE_BAR_HEIGHT);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    titlePanel.setLayout(new BorderLayout());&lt;br /&gt;
    titlePanel.setOpaque(true);&lt;br /&gt;
    titlePanel.setBackground(TITLE_BAR_BG_COLOR);&lt;br /&gt;
    titleLabel = new JLabel(title);&lt;br /&gt;
    titleLabel.setForeground(Color.black);&lt;br /&gt;
    buttonWrapperPanel = new JPanel();&lt;br /&gt;
    buttonWrapperPanel.setOpaque(false);&lt;br /&gt;
    buttonPanel = new JPanel(new GridLayout(1, 2));&lt;br /&gt;
    buttonPanel.setOpaque(false);&lt;br /&gt;
    buttonPanel.setAlignmentX(0.5f);&lt;br /&gt;
    buttonPanel.setAlignmentY(0.5f);&lt;br /&gt;
    buttonWrapperPanel.add(buttonPanel);&lt;br /&gt;
    titlePanel.add(titleLabel, BorderLayout.CENTER);&lt;br /&gt;
    titlePanel.add(buttonWrapperPanel, BorderLayout.EAST);&lt;br /&gt;
    InnerFrameTitleBarMouseAdapter iftbma = new InnerFrameTitleBarMouseAdapter(&lt;br /&gt;
        this);&lt;br /&gt;
    titlePanel.addMouseListener(iftbma);&lt;br /&gt;
    titlePanel.addMouseMotionListener(iftbma);&lt;br /&gt;
  }&lt;br /&gt;
  // title bar mouse adapter for frame dragging&lt;br /&gt;
  class InnerFrameTitleBarMouseAdapter extends MouseInputAdapter {&lt;br /&gt;
    InnerFrame innerFrame;&lt;br /&gt;
    int xDifference, yDifference;&lt;br /&gt;
    boolean isDragging;&lt;br /&gt;
    public InnerFrameTitleBarMouseAdapter(InnerFrame inf) {&lt;br /&gt;
      innerFrame = inf;&lt;br /&gt;
    }&lt;br /&gt;
    public void mouseDragged(MouseEvent e) {&lt;br /&gt;
      if (isDragging)&lt;br /&gt;
        innerFrame.setLocation(e.getX() - xDifference + getX(), e.getY()&lt;br /&gt;
            - yDifference + getY());&lt;br /&gt;
    }&lt;br /&gt;
    public void mousePressed(MouseEvent e) {&lt;br /&gt;
      innerFrame.toFront();&lt;br /&gt;
      xDifference = e.getX();&lt;br /&gt;
      yDifference = e.getY();&lt;br /&gt;
      isDragging = true;&lt;br /&gt;
    }&lt;br /&gt;
    public void mouseReleased(MouseEvent e) {&lt;br /&gt;
      isDragging = false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  // custom button class for title bar&lt;br /&gt;
  class InnerFrameButton extends JButton {&lt;br /&gt;
    Dimension size;&lt;br /&gt;
    public InnerFrameButton(ImageIcon ii) {&lt;br /&gt;
      super(ii);&lt;br /&gt;
      size = new Dimension(ii.getIconWidth(), ii.getIconHeight());&lt;br /&gt;
      setOpaque(false);&lt;br /&gt;
      setContentAreaFilled(false);&lt;br /&gt;
      setBorder(null);&lt;br /&gt;
    }&lt;br /&gt;
    public Dimension getPreferredSize() {&lt;br /&gt;
      return size;&lt;br /&gt;
    }&lt;br /&gt;
    public Dimension getMinimumSize() {&lt;br /&gt;
      return size;&lt;br /&gt;
    }&lt;br /&gt;
    public Dimension getMaximumSize() {&lt;br /&gt;
      return size;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class InnerFrameUI extends javax.swing.plaf.PanelUI {&lt;br /&gt;
  private static InnerFrameUI frameUI;&lt;br /&gt;
  protected static Color DEFAULT_TITLE_BAR_BG_COLOR;&lt;br /&gt;
  protected static Color DEFAULT_SELECTED_TITLE_BAR_BG_COLOR;&lt;br /&gt;
  protected static Color DEFAULT_TITLE_BAR_FG_COLOR;&lt;br /&gt;
  protected static Color DEFAULT_SELECTED_TITLE_BAR_FG_COLOR;&lt;br /&gt;
  protected static Font DEFAULT_TITLE_BAR_FONT;&lt;br /&gt;
  protected static Border DEFAULT_INNER_FRAME_BORDER;&lt;br /&gt;
  protected static Icon DEFAULT_FRAME_ICON;&lt;br /&gt;
  private static Hashtable myDefaults = new Hashtable();&lt;br /&gt;
  static {&lt;br /&gt;
    myDefaults.put(&amp;quot;InternalFrame.inactiveTitleBackground&amp;quot;,&lt;br /&gt;
        new ColorUIResource(108, 190, 116));&lt;br /&gt;
    myDefaults.put(&amp;quot;InternalFrame.inactiveTitleForeground&amp;quot;,&lt;br /&gt;
        new ColorUIResource(Color.black));&lt;br /&gt;
    myDefaults.put(&amp;quot;InternalFrame.activeTitleBackground&amp;quot;,&lt;br /&gt;
        new ColorUIResource(91, 182, 249));&lt;br /&gt;
    myDefaults.put(&amp;quot;InternalFrame.activeTitleForeground&amp;quot;,&lt;br /&gt;
        new ColorUIResource(Color.black));&lt;br /&gt;
    myDefaults.put(&amp;quot;InternalFrame.titleFont&amp;quot;, new FontUIResource(&lt;br /&gt;
        &amp;quot;Dialog&amp;quot;, Font.BOLD, 12));&lt;br /&gt;
    myDefaults.put(&amp;quot;InternalFrame.border&amp;quot;, new BorderUIResource(&lt;br /&gt;
        new MatteBorder(4, 4, 4, 4, Color.blue)));&lt;br /&gt;
  }&lt;br /&gt;
  public static ComponentUI createUI(JComponent c) {&lt;br /&gt;
    LookAndFeel currentLF = UIManager.getLookAndFeel();&lt;br /&gt;
    if (frameUI == null)&lt;br /&gt;
      frameUI = new InnerFrameUI();&lt;br /&gt;
    try {&lt;br /&gt;
      frameUI.installDefaults();&lt;br /&gt;
      InnerFrame frame = (InnerFrame) c;&lt;br /&gt;
      frame.setBorder(DEFAULT_INNER_FRAME_BORDER);&lt;br /&gt;
      if (frame.isShowing())&lt;br /&gt;
        frame.repaint();&lt;br /&gt;
    } catch (Exception ex) {&lt;br /&gt;
      System.err.println(ex);&lt;br /&gt;
      ex.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    return frameUI;&lt;br /&gt;
  }&lt;br /&gt;
  public void installUI(JComponent c) {&lt;br /&gt;
    InnerFrame frame = (InnerFrame) c;&lt;br /&gt;
    super.installUI(frame);&lt;br /&gt;
  }&lt;br /&gt;
  public void uninstallUI(JComponent c) {&lt;br /&gt;
    super.uninstallUI(c);&lt;br /&gt;
  }&lt;br /&gt;
  protected void installDefaults() {&lt;br /&gt;
    DEFAULT_TITLE_BAR_BG_COLOR = (Color) findDefaultResource(&amp;quot;InternalFrame.inactiveTitleBackground&amp;quot;);&lt;br /&gt;
    DEFAULT_TITLE_BAR_FG_COLOR = (Color) findDefaultResource(&amp;quot;InternalFrame.inactiveTitleForeground&amp;quot;);&lt;br /&gt;
    DEFAULT_SELECTED_TITLE_BAR_BG_COLOR = (Color) findDefaultResource(&amp;quot;InternalFrame.activeTitleBackground&amp;quot;);&lt;br /&gt;
    DEFAULT_SELECTED_TITLE_BAR_FG_COLOR = (Color) findDefaultResource(&amp;quot;InternalFrame.activeTitleForeground&amp;quot;);&lt;br /&gt;
    DEFAULT_TITLE_BAR_FONT = (Font) findDefaultResource(&amp;quot;InternalFrame.titleFont&amp;quot;);&lt;br /&gt;
    DEFAULT_INNER_FRAME_BORDER = (Border) findDefaultResource(&amp;quot;InternalFrame.border&amp;quot;);&lt;br /&gt;
    DEFAULT_FRAME_ICON = (Icon) findDefaultResource(&amp;quot;InternalFrame.icon&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  protected Object findDefaultResource(String id) {&lt;br /&gt;
    Object obj = null;&lt;br /&gt;
    try {&lt;br /&gt;
      UIDefaults uiDef = UIManager.getDefaults();&lt;br /&gt;
      obj = uiDef.get(id);&lt;br /&gt;
    } catch (Exception ex) {&lt;br /&gt;
      System.err.println(ex);&lt;br /&gt;
    }&lt;br /&gt;
    if (obj == null)&lt;br /&gt;
      obj = myDefaults.get(id);&lt;br /&gt;
    return obj;&lt;br /&gt;
  }&lt;br /&gt;
  public void paint(Graphics g, JComponent c) {&lt;br /&gt;
    super.paint(g, c);&lt;br /&gt;
    if (c.getBorder() != null)&lt;br /&gt;
      c.getBorder().paintBorder(c, g, 0, 0, c.getWidth(), c.getHeight());&lt;br /&gt;
  }&lt;br /&gt;
  public Color getTitleBarBkColor() {&lt;br /&gt;
    return DEFAULT_TITLE_BAR_BG_COLOR;&lt;br /&gt;
  }&lt;br /&gt;
  public Color getSelectedTitleBarBkColor() {&lt;br /&gt;
    return DEFAULT_SELECTED_TITLE_BAR_BG_COLOR;&lt;br /&gt;
  }&lt;br /&gt;
  public Color getTitleBarFgColor() {&lt;br /&gt;
    return DEFAULT_TITLE_BAR_FG_COLOR;&lt;br /&gt;
  }&lt;br /&gt;
  public Color getSelectedTitleBarFgColor() {&lt;br /&gt;
    return DEFAULT_SELECTED_TITLE_BAR_FG_COLOR;&lt;br /&gt;
  }&lt;br /&gt;
  public Font getTitleBarFont() {&lt;br /&gt;
    return DEFAULT_TITLE_BAR_FONT;&lt;br /&gt;
  }&lt;br /&gt;
  public Border getInnerFrameBorder() {&lt;br /&gt;
    return DEFAULT_INNER_FRAME_BORDER;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create a virtual desktop in your application ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import javax.swing.JDesktopPane;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JInternalFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class Main extends JFrame {&lt;br /&gt;
  public Main() {&lt;br /&gt;
    JMenuBar bar = new JMenuBar();&lt;br /&gt;
    JMenu addMenu = new JMenu(&amp;quot;Add&amp;quot;);&lt;br /&gt;
    JMenuItem newFrame = new JMenuItem(&amp;quot;Internal Frame&amp;quot;);&lt;br /&gt;
    addMenu.add(newFrame);&lt;br /&gt;
    bar.add(addMenu);&lt;br /&gt;
    setJMenuBar(bar);&lt;br /&gt;
    final JDesktopPane theDesktop = new JDesktopPane();&lt;br /&gt;
    getContentPane().add(theDesktop);&lt;br /&gt;
    newFrame.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        JInternalFrame frame = new JInternalFrame(&amp;quot;Internal Frame&amp;quot;, true, true, true, true);&lt;br /&gt;
        Container c = frame.getContentPane();&lt;br /&gt;
        MyJPanel panel = new MyJPanel();&lt;br /&gt;
        c.add(panel, BorderLayout.CENTER);&lt;br /&gt;
        frame.setSize(200,200);&lt;br /&gt;
        frame.setOpaque(true);&lt;br /&gt;
        theDesktop.add(frame);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    setSize(500, 400);&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Main app = new Main();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyJPanel extends JPanel {&lt;br /&gt;
  public MyJPanel() {&lt;br /&gt;
    add(new JLabel(&amp;quot;adf&amp;quot;));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating a JDesktopPane Container ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.JDesktopPane;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JInternalFrame;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    boolean resizable = true;&lt;br /&gt;
    boolean closeable = true;&lt;br /&gt;
    boolean maximizable = true;&lt;br /&gt;
    boolean iconifiable = true;&lt;br /&gt;
    String title = &amp;quot;Frame Title&amp;quot;;&lt;br /&gt;
    JInternalFrame iframe = new JInternalFrame(title, resizable, closeable, maximizable,&lt;br /&gt;
        iconifiable);&lt;br /&gt;
    iframe.setSize(300, 300);&lt;br /&gt;
    iframe.setVisible(true);&lt;br /&gt;
    iframe.getContentPane().add(new JTextArea());&lt;br /&gt;
    JDesktopPane desktop = new JDesktopPane();&lt;br /&gt;
    desktop.add(iframe);&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.getContentPane().add(desktop, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 300);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dynamic menu item for MDI children window and scroll bar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
// This is example is from Kjell Dirdal.&lt;br /&gt;
// Referenced from http://www.javaworld.ru/javaworld/jw-05-2001/jw-0525-mdi.html&lt;br /&gt;
&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Insets;&lt;br /&gt;
import java.awt.Point;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.beans.PropertyVetoException;&lt;br /&gt;
import javax.swing.DefaultDesktopManager;&lt;br /&gt;
import javax.swing.JCheckBoxMenuItem;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JDesktopPane;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JInternalFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
import javax.swing.JViewport;&lt;br /&gt;
import javax.swing.event.MenuEvent;&lt;br /&gt;
import javax.swing.event.MenuListener;&lt;br /&gt;
public class KjellDirdalNotepad extends JFrame {&lt;br /&gt;
  private MDIDesktopPane desktop = new MDIDesktopPane();&lt;br /&gt;
  private JMenuBar menuBar = new JMenuBar();&lt;br /&gt;
  private JMenu fileMenu = new JMenu(&amp;quot;File&amp;quot;);&lt;br /&gt;
  private JMenuItem newMenu = new JMenuItem(&amp;quot;New&amp;quot;);&lt;br /&gt;
  private JScrollPane scrollPane = new JScrollPane();&lt;br /&gt;
  public KjellDirdalNotepad() {&lt;br /&gt;
    menuBar.add(fileMenu);&lt;br /&gt;
    menuBar.add(new WindowMenu(desktop));&lt;br /&gt;
    fileMenu.add(newMenu);&lt;br /&gt;
    setJMenuBar(menuBar);&lt;br /&gt;
    setTitle(&amp;quot;MDI Test&amp;quot;);&lt;br /&gt;
    scrollPane.getViewport().add(desktop);&lt;br /&gt;
    getContentPane().setLayout(new BorderLayout());&lt;br /&gt;
    getContentPane().add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;
    addWindowListener(new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    newMenu.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
        desktop.add(new TextFrame());&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    KjellDirdalNotepad notepad = new KjellDirdalNotepad();&lt;br /&gt;
    notepad.setSize(600, 400);&lt;br /&gt;
    notepad.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class TextFrame extends JInternalFrame {&lt;br /&gt;
  private JTextArea textArea = new JTextArea();&lt;br /&gt;
  private JScrollPane scrollPane = new JScrollPane();&lt;br /&gt;
  public TextFrame() {&lt;br /&gt;
    setSize(200, 300);&lt;br /&gt;
    setTitle(&amp;quot;Edit Text&amp;quot;);&lt;br /&gt;
    setMaximizable(true);&lt;br /&gt;
    setIconifiable(true);&lt;br /&gt;
    setClosable(true);&lt;br /&gt;
    setResizable(true);&lt;br /&gt;
    scrollPane.getViewport().add(textArea);&lt;br /&gt;
    getContentPane().setLayout(new BorderLayout());&lt;br /&gt;
    getContentPane().add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/**&lt;br /&gt;
 * An extension of WDesktopPane that supports often used MDI functionality. This&lt;br /&gt;
 * class also handles setting scroll bars for when windows move too far to the&lt;br /&gt;
 * left or bottom, providing the MDIDesktopPane is in a ScrollPane.&lt;br /&gt;
 */&lt;br /&gt;
class MDIDesktopPane extends JDesktopPane {&lt;br /&gt;
  private static int FRAME_OFFSET = 20;&lt;br /&gt;
  private MDIDesktopManager manager;&lt;br /&gt;
  public MDIDesktopPane() {&lt;br /&gt;
    manager = new MDIDesktopManager(this);&lt;br /&gt;
    setDesktopManager(manager);&lt;br /&gt;
    setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);&lt;br /&gt;
  }&lt;br /&gt;
  public void setBounds(int x, int y, int w, int h) {&lt;br /&gt;
    super.setBounds(x, y, w, h);&lt;br /&gt;
    checkDesktopSize();&lt;br /&gt;
  }&lt;br /&gt;
  public Component add(JInternalFrame frame) {&lt;br /&gt;
    JInternalFrame[] array = getAllFrames();&lt;br /&gt;
    Point p;&lt;br /&gt;
    int w;&lt;br /&gt;
    int h;&lt;br /&gt;
    Component retval = super.add(frame);&lt;br /&gt;
    checkDesktopSize();&lt;br /&gt;
    if (array.length &amp;gt; 0) {&lt;br /&gt;
      p = array[0].getLocation();&lt;br /&gt;
      p.x = p.x + FRAME_OFFSET;&lt;br /&gt;
      p.y = p.y + FRAME_OFFSET;&lt;br /&gt;
    } else {&lt;br /&gt;
      p = new Point(0, 0);&lt;br /&gt;
    }&lt;br /&gt;
    frame.setLocation(p.x, p.y);&lt;br /&gt;
    if (frame.isResizable()) {&lt;br /&gt;
      w = getWidth() - (getWidth() / 3);&lt;br /&gt;
      h = getHeight() - (getHeight() / 3);&lt;br /&gt;
      if (w &amp;lt; frame.getMinimumSize().getWidth())&lt;br /&gt;
        w = (int) frame.getMinimumSize().getWidth();&lt;br /&gt;
      if (h &amp;lt; frame.getMinimumSize().getHeight())&lt;br /&gt;
        h = (int) frame.getMinimumSize().getHeight();&lt;br /&gt;
      frame.setSize(w, h);&lt;br /&gt;
    }&lt;br /&gt;
    moveToFront(frame);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
    try {&lt;br /&gt;
      frame.setSelected(true);&lt;br /&gt;
    } catch (PropertyVetoException e) {&lt;br /&gt;
      frame.toBack();&lt;br /&gt;
    }&lt;br /&gt;
    return retval;&lt;br /&gt;
  }&lt;br /&gt;
  public void remove(Component c) {&lt;br /&gt;
    super.remove(c);&lt;br /&gt;
    checkDesktopSize();&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Cascade all internal frames&lt;br /&gt;
   */&lt;br /&gt;
  public void cascadeFrames() {&lt;br /&gt;
    int x = 0;&lt;br /&gt;
    int y = 0;&lt;br /&gt;
    JInternalFrame allFrames[] = getAllFrames();&lt;br /&gt;
    manager.setNormalSize();&lt;br /&gt;
    int frameHeight = (getBounds().height - 5) - allFrames.length * FRAME_OFFSET;&lt;br /&gt;
    int frameWidth = (getBounds().width - 5) - allFrames.length * FRAME_OFFSET;&lt;br /&gt;
    for (int i = allFrames.length - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
      allFrames[i].setSize(frameWidth, frameHeight);&lt;br /&gt;
      allFrames[i].setLocation(x, y);&lt;br /&gt;
      x = x + FRAME_OFFSET;&lt;br /&gt;
      y = y + FRAME_OFFSET;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Tile all internal frames&lt;br /&gt;
   */&lt;br /&gt;
  public void tileFrames() {&lt;br /&gt;
    java.awt.ruponent allFrames[] = getAllFrames();&lt;br /&gt;
    manager.setNormalSize();&lt;br /&gt;
    int frameHeight = getBounds().height / allFrames.length;&lt;br /&gt;
    int y = 0;&lt;br /&gt;
    for (int i = 0; i &amp;lt; allFrames.length; i++) {&lt;br /&gt;
      allFrames[i].setSize(getBounds().width, frameHeight);&lt;br /&gt;
      allFrames[i].setLocation(0, y);&lt;br /&gt;
      y = y + frameHeight;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Sets all component size properties ( maximum, minimum, preferred) to the&lt;br /&gt;
   * given dimension.&lt;br /&gt;
   */&lt;br /&gt;
  public void setAllSize(Dimension d) {&lt;br /&gt;
    setMinimumSize(d);&lt;br /&gt;
    setMaximumSize(d);&lt;br /&gt;
    setPreferredSize(d);&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Sets all component size properties ( maximum, minimum, preferred) to the&lt;br /&gt;
   * given width and height.&lt;br /&gt;
   */&lt;br /&gt;
  public void setAllSize(int width, int height) {&lt;br /&gt;
    setAllSize(new Dimension(width, height));&lt;br /&gt;
  }&lt;br /&gt;
  private void checkDesktopSize() {&lt;br /&gt;
    if (getParent() != null &amp;amp;&amp;amp; isVisible())&lt;br /&gt;
      manager.resizeDesktop();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/**&lt;br /&gt;
 * Private class used to replace the standard DesktopManager for JDesktopPane.&lt;br /&gt;
 * Used to provide scrollbar functionality.&lt;br /&gt;
 */&lt;br /&gt;
class MDIDesktopManager extends DefaultDesktopManager {&lt;br /&gt;
  private MDIDesktopPane desktop;&lt;br /&gt;
  public MDIDesktopManager(MDIDesktopPane desktop) {&lt;br /&gt;
    this.desktop = desktop;&lt;br /&gt;
  }&lt;br /&gt;
  public void endResizingFrame(JComponent f) {&lt;br /&gt;
    super.endResizingFrame(f);&lt;br /&gt;
    resizeDesktop();&lt;br /&gt;
  }&lt;br /&gt;
  public void endDraggingFrame(JComponent f) {&lt;br /&gt;
    super.endDraggingFrame(f);&lt;br /&gt;
    resizeDesktop();&lt;br /&gt;
  }&lt;br /&gt;
  public void setNormalSize() {&lt;br /&gt;
    JScrollPane scrollPane = getScrollPane();&lt;br /&gt;
    int x = 0;&lt;br /&gt;
    int y = 0;&lt;br /&gt;
    Insets scrollInsets = getScrollPaneInsets();&lt;br /&gt;
    if (scrollPane != null) {&lt;br /&gt;
      Dimension d = scrollPane.getVisibleRect().getSize();&lt;br /&gt;
      if (scrollPane.getBorder() != null) {&lt;br /&gt;
        d.setSize(d.getWidth() - scrollInsets.left - scrollInsets.right, d.getHeight()&lt;br /&gt;
            - scrollInsets.top - scrollInsets.bottom);&lt;br /&gt;
      }&lt;br /&gt;
      d.setSize(d.getWidth() - 20, d.getHeight() - 20);&lt;br /&gt;
      desktop.setAllSize(x, y);&lt;br /&gt;
      scrollPane.invalidate();&lt;br /&gt;
      scrollPane.validate();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private Insets getScrollPaneInsets() {&lt;br /&gt;
    JScrollPane scrollPane = getScrollPane();&lt;br /&gt;
    if (scrollPane == null)&lt;br /&gt;
      return new Insets(0, 0, 0, 0);&lt;br /&gt;
    else&lt;br /&gt;
      return getScrollPane().getBorder().getBorderInsets(scrollPane);&lt;br /&gt;
  }&lt;br /&gt;
  private JScrollPane getScrollPane() {&lt;br /&gt;
    if (desktop.getParent() instanceof JViewport) {&lt;br /&gt;
      JViewport viewPort = (JViewport) desktop.getParent();&lt;br /&gt;
      if (viewPort.getParent() instanceof JScrollPane)&lt;br /&gt;
        return (JScrollPane) viewPort.getParent();&lt;br /&gt;
    }&lt;br /&gt;
    return null;&lt;br /&gt;
  }&lt;br /&gt;
  protected void resizeDesktop() {&lt;br /&gt;
    int x = 0;&lt;br /&gt;
    int y = 0;&lt;br /&gt;
    JScrollPane scrollPane = getScrollPane();&lt;br /&gt;
    Insets scrollInsets = getScrollPaneInsets();&lt;br /&gt;
    if (scrollPane != null) {&lt;br /&gt;
      JInternalFrame allFrames[] = desktop.getAllFrames();&lt;br /&gt;
      for (int i = 0; i &amp;lt; allFrames.length; i++) {&lt;br /&gt;
        if (allFrames[i].getX() + allFrames[i].getWidth() &amp;gt; x) {&lt;br /&gt;
          x = allFrames[i].getX() + allFrames[i].getWidth();&lt;br /&gt;
        }&lt;br /&gt;
        if (allFrames[i].getY() + allFrames[i].getHeight() &amp;gt; y) {&lt;br /&gt;
          y = allFrames[i].getY() + allFrames[i].getHeight();&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      Dimension d = scrollPane.getVisibleRect().getSize();&lt;br /&gt;
      if (scrollPane.getBorder() != null) {&lt;br /&gt;
        d.setSize(d.getWidth() - scrollInsets.left - scrollInsets.right, d.getHeight()&lt;br /&gt;
            - scrollInsets.top - scrollInsets.bottom);&lt;br /&gt;
      }&lt;br /&gt;
      if (x &amp;lt;= d.getWidth())&lt;br /&gt;
        x = ((int) d.getWidth()) - 20;&lt;br /&gt;
      if (y &amp;lt;= d.getHeight())&lt;br /&gt;
        y = ((int) d.getHeight()) - 20;&lt;br /&gt;
      desktop.setAllSize(x, y);&lt;br /&gt;
      scrollPane.invalidate();&lt;br /&gt;
      scrollPane.validate();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/**&lt;br /&gt;
 * Menu component that handles the functionality expected of a standard&lt;br /&gt;
 * &amp;quot;Windows&amp;quot; menu for MDI applications.&lt;br /&gt;
 */&lt;br /&gt;
class WindowMenu extends JMenu {&lt;br /&gt;
  private MDIDesktopPane desktop;&lt;br /&gt;
  private JMenuItem cascade = new JMenuItem(&amp;quot;Cascade&amp;quot;);&lt;br /&gt;
  private JMenuItem tile = new JMenuItem(&amp;quot;Tile&amp;quot;);&lt;br /&gt;
  public WindowMenu(MDIDesktopPane desktop) {&lt;br /&gt;
    this.desktop = desktop;&lt;br /&gt;
    setText(&amp;quot;Window&amp;quot;);&lt;br /&gt;
    cascade.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
        WindowMenu.this.desktop.cascadeFrames();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    tile.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
        WindowMenu.this.desktop.tileFrames();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    addMenuListener(new MenuListener() {&lt;br /&gt;
      public void menuCanceled(MenuEvent e) {&lt;br /&gt;
      }&lt;br /&gt;
      public void menuDeselected(MenuEvent e) {&lt;br /&gt;
        removeAll();&lt;br /&gt;
      }&lt;br /&gt;
      public void menuSelected(MenuEvent e) {&lt;br /&gt;
        buildChildMenus();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
  /* Sets up the children menus depending on the current desktop state */&lt;br /&gt;
  private void buildChildMenus() {&lt;br /&gt;
    int i;&lt;br /&gt;
    ChildMenuItem menu;&lt;br /&gt;
    JInternalFrame[] array = desktop.getAllFrames();&lt;br /&gt;
    add(cascade);&lt;br /&gt;
    add(tile);&lt;br /&gt;
    if (array.length &amp;gt; 0)&lt;br /&gt;
      addSeparator();&lt;br /&gt;
    cascade.setEnabled(array.length &amp;gt; 0);&lt;br /&gt;
    tile.setEnabled(array.length &amp;gt; 0);&lt;br /&gt;
    for (i = 0; i &amp;lt; array.length; i++) {&lt;br /&gt;
      menu = new ChildMenuItem(array[i]);&lt;br /&gt;
      menu.setState(i == 0);&lt;br /&gt;
      menu.addActionListener(new ActionListener() {&lt;br /&gt;
        public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
          JInternalFrame frame = ((ChildMenuItem) ae.getSource()).getFrame();&lt;br /&gt;
          frame.moveToFront();&lt;br /&gt;
          try {&lt;br /&gt;
            frame.setSelected(true);&lt;br /&gt;
          } catch (PropertyVetoException e) {&lt;br /&gt;
            e.printStackTrace();&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
      menu.setIcon(array[i].getFrameIcon());&lt;br /&gt;
      add(menu);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /*&lt;br /&gt;
   * This JCheckBoxMenuItem descendant is used to track the child frame that&lt;br /&gt;
   * corresponds to a give menu.&lt;br /&gt;
   */&lt;br /&gt;
  class ChildMenuItem extends JCheckBoxMenuItem {&lt;br /&gt;
    private JInternalFrame frame;&lt;br /&gt;
    public ChildMenuItem(JInternalFrame frame) {&lt;br /&gt;
      super(frame.getTitle());&lt;br /&gt;
      this.frame = frame;&lt;br /&gt;
    }&lt;br /&gt;
    public JInternalFrame getFrame() {&lt;br /&gt;
      return frame;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting All Frames in a JDesktopPane Container ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import javax.swing.JDesktopPane;&lt;br /&gt;
import javax.swing.JInternalFrame;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JDesktopPane desktop = new JDesktopPane();&lt;br /&gt;
    JInternalFrame[] frames = desktop.getAllFrames();&lt;br /&gt;
    for (int i = 0; i &amp;lt; frames.length; i++) {&lt;br /&gt;
      String title = frames[i].getTitle();&lt;br /&gt;
      boolean isVisible = frames[i].isVisible();&lt;br /&gt;
      boolean isCloseable = frames[i].isClosable();&lt;br /&gt;
      boolean isResizeable = frames[i].isResizable();&lt;br /&gt;
      boolean isIconifiable = frames[i].isIconifiable();&lt;br /&gt;
      boolean isIcon = frames[i].isIcon();&lt;br /&gt;
      boolean isMaximizable = frames[i].isMaximizable();&lt;br /&gt;
      boolean isSelected = frames[i].isSelected();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>