Я знаю, что это своего рода неопределенный вопрос, но я постараюсь сделать его максимально ясным. Когда Java-приложение запускается в первый раз, он проверяет, существуют ли файлы и каталоги и проверяет подключение к Интернету.Как предварительно загрузить компоненты Swing
Приложение затем позволяет пользователю перейти к панели управления, что требует загрузки и добавления многих компонентов Swing на панель фона. Это требует времени.
Мне было интересно, как я мог это сделать, чтобы при загрузке в начале приложение загрузило все компоненты Swing Images и т. Д., Чтобы они отображались мгновенно, когда пользователь выполняет команду для этого.
я могу загрузить все компоненты, как это:
JButton = new JButton("blah");
, но я не уверен, что это достаточно, чтобы сделать компоненты появляются мгновенно, не добавив несколько изображений заполнены компонентов Swing, в то же время по-прежнему lag поток пользовательского интерфейса, даже если он уже «загружен», как видно выше?
Спасибо!
Если вы собираетесь использовать отдельные потоки, не забывайте, что компоненты Swing не являются потокобезопасными. Вам нужно будет использовать 'SwingUtilities.invokeLater' или' invokeAndWait' для выполнения любых обновлений дерева компонентов. –
Дело в том, что у меня уже есть компоненты на экране загрузки, поэтому прямо сейчас я должен удалить компоненты из центральной панели и добавить новые, если бы я добавил компоненты для экрана загрузки, а также компоненты на панель инструментов даже если установлено на невидимое, что бесполезно обрабатывать компоненты, которые видны? –
Хорошая точка Кэмерон приветствует добавление, что полностью забыл: s. Epic - это зависит от типа макета, который вы используете в родительском контейнере. Если вы используете макет по умолчанию, то да, но попробуйте использовать абсолютный макет, и это должно означать, что пространства компонентов должны быть пустыми и каждая вещь размещена там, где вы хотите. (Если вы хотите, чтобы размер был согласованным по размеру, вам нужно чтобы сделать позиции относительно друг друга) –