Модальное окно 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();}

вот альтернативный ответ.

попробовать Вам Не Хватает Кнопки Максимизации? Сантош Кумар.

это служебный класс, который делает кадр имитировать диалог.