Модальное окно Java с кнопкой развернуть
Как я могу создать окно, которое является модальным и есть кнопка "развернуть"?
Таким образом, можно создать модальный JFrame
или создать JDialog
С увеличить кнопки?
3 ответов
на большинстве внешний вид, модальные окна (например,JDialog
) не имеют кнопки максимизации просто потому, что они не должны быть максимизированы (или минимизированы) вообще.
можно с помощью некоторых трюков добавить maximise
кнопка, но это было бы полностью против пути JDialog
должен работать.
Если вам нужна кнопка максимизации, лучшим решением будет использование JWindow
или JFrame
вместо JDialog
. Эти окна поддерживают максимизацию и минимизация.
предупреждение: вы не должны этого делать, несмотря ни на что.
трюк, чтобы сделать это JDialog
:
setUndecorated(true);
getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
Решение 1: протестировано на Windows
я использовал JFrame для модального окна
JFrame mainWindow = new JFrame;
mainWindow.setVisible(true);
JFrame modalWindow = new JFrame();
// The next two sentences gives modalWindow modal beahaviour
mainWindow.setEnabled(false);
mainWindow.setFocusable(false);
modalWindow.setVisible(true);
решение 2: протестировано на Ubuntu
я добавил WindowFocusListener
addWindowFocusListener(new java.awt.event.WindowFocusListener() {
public void windowGainedFocus(java.awt.event.WindowEvent evt) {}
public void windowLostFocus(java.awt.event.WindowEvent evt) {
formWindowLostFocus(evt);}
private void formWindowLostFocus(java.awt.event.WindowEvent evt) {
this.requestFocus();
this.toFront();}
вот альтернативный ответ.
попробовать Вам Не Хватает Кнопки Максимизации? Сантош Кумар.
это служебный класс, который делает кадр имитировать диалог.