0

ネットビーンを使ってアプリケーションを開発しましたが、

1) Java API 6 でプロジェクトを作成しています。「Net Beans 7.1」を使用しています。2) プロジェクトで使用したいJInternalFrame3) 別のパッケージを作成し、そこに「JInternalFrame」を作成しました。そして、「JMenuItem」でアクション実行イベントを起動して、メイン アプリケーション ウィンドウで呼び出します。4) 正常に動作しますが、「JMenuItem」を何度もクリックすると、同じインスタンスの新しい「JInternalFrame」が開くという問題が 1 つだけ発生します。これを停止するにはどうすればよいですか? 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

これが5月のサンプルコードです。この助けを願っています。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 に答える