web-dev-qa-db-ja.com

JFrameの閉じる(x)ボタンを無効にする(または非表示にする)方法は?

ウィンドウ(JFrameから派生)があり、割り込みできない特定の操作中に閉じるボタンを無効にしたい。私はボタンを何もしないようにすることができることを知っています(またはWindowListenerのハンドラを呼び出す)

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

しかし、クリックすることは無意味であることを視覚的に明確にしたいと思います。

24
florin

私がそれを正しく理解していれば、 このバグレポート はこれが現在可能ではないことを示しています。

10
bdumitriu

これはおそらくあなたが得ようとしている最高のものです:

setUndecorated(true);
getRootPane().setWindowDecorationStyle(JRootPane.NONE);

これにより、タイトルバー全体が削除されます。Javaは実際にはタイトルバーの個々のコンポーネントを削除する方法を指定していません

編集:

方法があるかもしれません、これらのスレッドをチェックしてください:

20
Malfist

2008年以降にこれに来る人のために、これを可能にする変更がありました。 このリンク を参照してください

下から2番目の応答は、名前でそれを行う方法を示しています。

5
Spencer Kormos

これはあなたを助けます:

frame.setDefaultCloseOperation(0);
2

それらを単純に非表示にするには、次を試してください。

setUndecorated(true);
0
Cancer000

これを試してください

frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        e.getWindow().setVisible(false);
            try {
                wait();
            } catch (InterruptedException ex) {
                Logger.getLogger(WindowsActions.class.getName()).log(Level.SEVERE, null, ex);
            }
      }
    });
0
Ab Hin