Java Swing неактивная кнопка для закрытия окна - PullRequest
0 голосов
/ 12 сентября 2011

Я пытаюсь создать графический интерфейс, используя свинг.У меня есть основной кадр, и я хочу, чтобы он показывал только кнопку х в верхнем правом углу.Я также хотел бы сделать невозможным нажатие этой кнопки при соблюдении определенных условий.Я провел поиск в Google и на веб-сайте Java, но не смог найти никаких функций, связанных с этими двумя задачами.Любые небольшие кусочки кода или ссылки на учебники или API приветствуются.

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

Ответы [ 4 ]

3 голосов
/ 12 сентября 2011

возможно myFrame.setResizable(false); и все события для этой кнопки вы можете изменить таким образом

РЕДАКТИРОВАТЬ:

украшения окна, поступающие из Native OS, и тогда у вас естьэто четыре варианта следующим образом

  • полностью оформлен (JFrame) свернуть / развернуть / закрыть кнопку

  • только закрыть Кнопки JDialog и JFrame # setResiziable (false)

  • без отделки, затем пропущены кнопки «минимизировать / развернуть / закрыть» (a) и панель инструментов (из родной ОС) тоже

  • без отделки Контейнер верхнего уровня с JPanel GradientPaint имитируемый реальный Панель инструментов) содержит JButton с Char X (можетбыть включенным один раз или другое время отключено, как вы хотите)

2 голосов
/ 12 сентября 2011

Вы можете использовать JDialog, он только что получил кнопку X

JDialog

А с dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
Вы можете отключить кнопку закрытия.

С dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
Вы можете включить кнопку закрытия

0 голосов
/ 12 сентября 2011

Вы не искали очень далеко.См. http://download.oracle.com/javase/6/docs/api/javax/swing/JFrame.html#setDefaultCloseOperation%28int%29. Передача DO_NOTHING_ON_CLOSE этому методу запретит закрытие кадра с помощью кнопки закрытия по умолчанию.

0 голосов
/ 12 сентября 2011

Вы можете указать, что должно происходить при нажатии кнопки закрытия на вашем фрейме. Если вы хотите, чтобы он ничего не делал, тогда:

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...