2

別のウィンドウを開くメインウィンドウがあります。このウィンドウを閉じてメインウィンドウを開いたままにしておきたいのですが、メインウィンドウも閉じます。

setDefaultCloseOperation()、dispose()、setVisible()など、多くのメソッドを試しましたが、何も機能しませんでした。

メインウィンドウにこのコードがあります

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    AdaugaComanda ac = new AdaugaComanda();
    ac.setVisible(true);
        }   
public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new FereastraPrincipala().setVisible(true);
      }});}

もう一方のウィンドウ(メインウィンドウを閉じると閉じる)には、次のコードがあります

public class AdaugaProdus extends javax.swing.JFrame {

public AdaugaProdus() {
    initComponents();
    initComboBoxes();

}


public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            AdaugaProdus ad = new AdaugaProdus();
            ad.setVisible(true);

        }
    });
}
4

1 に答える 1

3

考えられる簡単な解決策:セカンダリウィンドウをJFrameではなくJDialogなどのダイアログにします。アプリケーションでは通常、一度に1つのJFrameしか開いていません。JDialogは、他のJFrameと同じくらい複雑なGUIを保持でき、閉じるときに、JFrameができるようにJVMを閉じる​​ことはありません(ご存知のとおり)。必要に応じて、ダイアログをモーダルにするかどうかを選択することもできます。

そうは言っても、新しい情報はJFrameが所有するダイアログとして表示できますが、CardLayoutを介してJFrameのコンポーネントを交換することによっても表示できることを理解してください。これは、使用している情報の種類によって異なります。見せようとしています。

于 2012-06-21T16:44:52.740 に答える