#java #swing
#java #swing
Вопрос:
Итак, я создаю пользовательский интерфейс приложения Java с использованием Swing. В принципе, всякий раз, когда процесс завершается, я хочу иметь наложение, которое было бы несколько прозрачным с определенным оттенком, а на переднем плане отображался бы загружаемый gif. Фоновые элементы будут недоступны для просмотра, чтобы предотвратить одновременную загрузку / запуск любых других процессов. Единственная часть, с которой мне действительно нужна помощь, — это сделать тонированный фон и сделать элементы в фоновом режиме недоступными для кликабельности. В идеале я хочу, чтобы этот класс использовался как класс Util, который будет использоваться в другом случае, когда мне нужно будет запустить экран загрузки. Пока это мой код:
package com.cervinakuy.game;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Overlay extends JFrame {
private static final long serialVersionUID = 1L;
public Overlay() {
setUndecorated(true);
setBackground(new Color(1.0f,1.0f,1.0f,0.5f));
setAlwaysOnTop(true);
getRootPane().putClientProperty("apple.awt.draggableWindowBackground", false);
setVisible(true);
pack();
}
}
Ответ №1:
Вы можете делать то, что делаете, за исключением того, что вы будете использовать a modal JDialog
вместо JFrame. Модальный диалог предотвращает передачу событий родительскому JFrame до тех пор, пока диалог не будет закрыт.
Другой подход заключается в использовании Glass Pane
. Стеклянная панель может закрывать рамку. Затем вы можете перехватывать события мыши / клавиши, чтобы предотвратить дальнейшую обработку, пока стеклянная панель не будет удалена.
Проверьте Отключенную стеклянную панель для примера этого подхода.
Комментарии:
1. Не могли бы вы связать меня с тем, где вы узнали, как использовать модальный JDialog? Я никогда не использовал его и хотел бы узнать, как это сделать.
2. @Espin, ты пробовал API? API содержит ссылку на учебное пособие по Swing. В руководстве есть примеры для всех компонентов Swing.
3. Я не думаю, что понимаю, что вы имеете в виду, API? Учебное пособие? Я не понимаю.
4. API — это то, что вы используете для поиска всех классов и всех методов классов. Когда вы читаете API, в нем есть краткое описание того, что делает класс. Когда вы читаете API JDialog, вы также найдете ссылку на учебное пособие по Swing, в котором содержится более подробная информация и примеры кода.
5. О, хорошо, я думаю, я понял, что вы имеете в виду, я попробую это. Спасибо!