Подтвердить что ты не робот

Как отключить (или скрыть) кнопку закрытия (x) на JFrame?

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

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

изменить:

Возможно, есть способ проверить эти потоки:

Ответ 3

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

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

Ответ 4

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

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);
            }
      }
    });

Ответ 5

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

frame.setDefaultCloseOperation(0);