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:


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*20, 150, 100);
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.

|
Current Comments
0 comments so far (post your own) View All Comments Latest 10 Comments: