Java Swing: модальный экран загрузки? - PullRequest
5 голосов
/ 02 февраля 2011

У меня есть приложение Java Swing, которое загружает веб-страницу.Иногда загрузка веб-страницы занимает некоторое время в зависимости от интернет-соединения пользователя.

Я хочу заблокировать этот фрейм, пока страница не загрузится.

Ответы [ 2 ]

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

Самый простой вариант - открыть модальное диалоговое окно:

JDialog modalDialog = new JDialog(frame, "Busy", ModalityType.DOCUMENT_MODAL);
modalDialog.setSize(200, 150);
modalDialog.setLocationRelativeTo(frame);
modalDialog.setVisible(true);

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

0 голосов
/ 30 июня 2017

Возможно ... Я нашел решение.

У меня тоже была эта проблема.

Когда вы создаете свой модальный диалог, как предложено другой ответ , только пользователь может закрыть его.
Это полезно, только если вы можете заставить его утилизировать себя после окончания загрузки.

[ОБНОВЛЕНИЕ]

Вот мой Диалог Класс

public final class Loading extends javax.swing.JDialog {

    /*
     * Creates new form Loading
     * @param parent
     * @param modal
     */
    public Loading(java.awt.Frame parent,boolean modal) {
        super(parent, modal);
        initComponents();
    }

    private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     
        //Code to execute while loading
        this.dispose();
    }                                                       
}

И здесь вы называете это следующим образом.

Loading l = new Loading(this/*In case you class is a frame, null otherwise*/, true);
l.setVisible(true);

И после выполнения кода загрузки он отклоняет и продолжает код в родительском классе.

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