如何控制内部窗体不重复弹出
技术科 2008-03-13 01:17:32 package inf;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class infFrame {
private JFrame frame;
/**
* Launch the application
* @param args
*/
public static void main(String args[]) {
try {
infFrame window = new infFrame();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the application
*/
public infFrame() {
initialize();
}
/**
* Initialize the contents of the frame
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 500, 375);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JDesktopPane desktopPane = new JDesktopPane();
frame.getContentPane().add(desktopPane, BorderLayout.CENTER);
final JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
final JMenu menu = new JMenu();
menu.setText("New SubMenu");
menuBar.add(menu);
final JMenuItem newItemMenuItem = new JMenuItem();
newItemMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent arg0) {
final JInternalFrame internalFrame = new JInternalFrame("窗体1",true,true,true,true);
internalFrame.setVisible(true);
internalFrame.setBounds(123, 61, 157, 158);
desktopPane.add(internalFrame);
}
});
newItemMenuItem.setText("窗体1");
menu.add(newItemMenuItem);
final JMenuItem newItemMenuItem_1 = new JMenuItem();
newItemMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
final JInternalFrame internalFrame = new JInternalFrame("窗体2",true,true,true,true);
internalFrame.setVisible(true);
internalFrame.setBounds(150, 70, 157, 158);
desktopPane.add(internalFrame);
}
});
newItemMenuItem_1.setText("窗体2");
menu.add(newItemMenuItem_1); }
}
源码如上,在实际应用中,按下菜单--窗体1,会弹出窗体1,按下菜单--窗体2,会弹出窗体2,如果窗体1已打开,再按下菜单中的窗体1,还是会打开新的窗体1,如何实现不重复打开已存在窗体?即窗体1打开后,按菜单不会重复打开新的窗体?