Как отключить (или скрыть) кнопку закрытия (x) на JFrame? - PullRequest
24 голосов
/ 09 ноября 2008

У меня есть окно (полученное из JFrame), и я хочу отключить кнопку закрытия во время определенных операций, которые не прерываются. Я знаю, что могу заставить кнопку ничего не делать (или вызывать обработчик в WindowListener), вызывая

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

но я хотел бы прояснить, что нажимать на нее бессмысленно.

Ответы [ 6 ]

19 голосов
/ 11 ноября 2008

Это, вероятно, лучшее, что вы получите:

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

Это удалит всю заголовок, в Java не указан способ удаления отдельных компонентов заголовка

редактирование:

Может быть, посмотрите эти темы:

10 голосов
/ 10 ноября 2008

Если я правильно понимаю, этот отчет об ошибке указывает, что это в настоящее время невозможно.

5 голосов
/ 02 февраля 2012

Для тех, кто придет к этому позже 2008 года, произошли изменения, позволившие это сделать. Смотрите эту ссылку

Второй ответ снизу показывает, как это сделать по имени.

2 голосов
/ 15 марта 2015

Это вам поможет:

frame.setDefaultCloseOperation(0);
0 голосов
/ 28 декабря 2018

Чтобы просто заставить их исчезнуть, попробуйте следующее:

setUndecorated(true);
0 голосов
/ 21 декабря 2014

Пожалуйста, попробуйте это

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);
            }
      }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...