Getting all frames in a JDesktopPane container

This section shows you how to count the number of visible internal frames in a JDesktopPane container.

Getting all frames in a JDesktopPane container

This section shows you how to count the number of visible internal frames in a JDesktopPane container.

Getting all frames in a JDesktopPane container

Getting all frames in a JDesktopPane container

     

This section shows you how to count the number of visible internal frames in a JDesktopPane container. The JDesktopPane container roles like a MDI (Multiple Document Interface) frame and all internal frames role like the child frame of the JDesktopPane container.

Screen shots for the result of the given program:

Input Box for entering the number of creating child frames

Getting the number of all frame inside the JDesktopPane Component

In this section, you will learn how to get all frames these are visible in the JDesktopPane container. This program firstly show a input dialog box in which you have to enter the internal frame number for the JDesktopPane container how many internal frames, you have to create. A menu named "Count Total Frames" also will be shown on the frame. Whenever you click on that menu and the menu is selected then a message box will be opened which contains the text "Total visible internal frames are : number_of_internal_frames". For example, if the JDesktopPane container holds the three internal frame then the message dialog will be shown the message "Total visible internal frames are : 3". Following methods and APIs have been used for getting all internal frames in the JDesktopPane container:

getAllFrames():
This is the method of JDesktopPane class. This method return a array of internal frames. This program has use the length property of the array to get the number of all visible internal frames in the JDesktopPane container.

Here is the code of the program:

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

public class AllFrameDesktopContainer{
  JDesktopPane desk;
  JInternalFrame iframe;
  JFrame frame;
  public static void main(String[] args) {
  AllFrameDesktopContainer d = new AllFrameDesktopContainer();
  }

  public AllFrameDesktopContainer(){
  frame = new JFrame("All Frames in a JDesktopPane Container");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  desk = new JDesktopPane();
  try{
  String str = JOptionPane.showInputDialog

(
null, "Enter number of frames :",
 
"Roseindia.net"1);
  int i = Integer.parseInt(str);
  for (int j = 1; j <= i; j++){
  iframe = new JInternalFrame("Internal Frame: " + j, true, 

true, true, 
true);
  iframe.setBounds(j*20, j*20150100);
  iframe.setVisible(true);
  desk.add(iframe);
  iframe.setToolTipText("Internal Frame :" + j);
  }
  }
  catch(NumberFormatException ne){
  JOptionPane.showMessageDialog(null, "Please enter number value."
"Roseindia.net"1);
  System.exit(0);
  }
  JMenuBar menubar = new JMenuBar();
  JMenu count = new JMenu("Count Total Frames");
  count.addMenuListener(new MyAction());
  menubar.add(count);
  frame.setJMenuBar(menubar);
  frame.add(desk);
  frame.setSize(400,400);
  frame.setVisible(true);
  }

  public class MyAction implements MenuListener{
  public void menuSelected(MenuEvent me){
  int i = desk.getAllFrames().length;
  JOptionPane.showMessageDialog(null, "Total visible internal frames 
are : " 
+ i,
 
"Roseindia.net"1);
  }

  public void menuCanceled(MenuEvent me){}

  public void menuDeselected(MenuEvent me){}
  }
}

Download this example.