0

我使用net bean开发了一个应用程序,

1)我在java API 6中制作项目。我正在使用“Net Beans 7.1”。2)我想JInternalFrame在我的项目中使用 3)我制作了另一个包并在那里制作了“JInternalFrame”。然后通过触发“JMenuItem”上的操作执行事件在我的主应用程序窗口中调用它。4)它工作正常,但只出现一个问题,即如果我一次又一次单击“JMenuItem”,同一实例的新“JInternalFrame”正在打开,我该如何阻止它?5)我想要那个,如果我打开“JInternalFrame”一次然后我再次点击“JMenuItem”打开相同的“JInternalFrame”,它应该什么都不做,或者它显示已经打开并最小化的窗口

示例代码:

<code>
private void empDataActionPerformed(java.awt.event.ActionEvent evt) {
Emps employees = new Emps();
desktop.add(employees);
employees.setVisible(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
employees.setBounds(230, 40, screenSize.width / 2 - 80, screenSize.height / 2 + 105);
}
<code>

请我需要帮助。

4

1 回答 1

0

这是可能的示例代码。希望这有帮助。在 JdesktopPane 所在的主应用程序中调用内部框架的菜单操作。

 private void YourJinternalFrameMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                                 

    YourJinternalFrame nw = YourJinternalFrame.getInstance();
    nw.pack();
    //usefull part for you.. if open shows, if not creates new one 
    if (nw.isVisible()) {
    } else {
        desktopPane.add(nw);
        nw.setVisible(true);
    }
    try {

        nw.setMaximum(true);
    } catch (PropertyVetoException ex) {
        Logger.getLogger(MainApplication.class.getName()).log(Level.SEVERE, null, ex);
    }
}   

把它放在你的 YourJinternalFrame 里面

private static YourJinternalFrame myInstance;

public static YourJinternalFrame getInstance() {
    if (myInstance == null) {
    myInstance = new YourJinternalFrame();
    }
return myInstance;
于 2013-03-24T17:06:50.957 回答