2012-02-24 3 views
2

Я вижу несколько приложений Swing (например, Eclipse), которые загружаются с помощью страницы Welcome!/"Splash". Что это за компонент Swing? Его вроде как веб-страница (например, старый <imagemap> s!), Встроенный в приложение Swing, и очень круто.Компоненты Swing, используемые для «всплесков» страниц?

+3

Eclipse - это не приложение Swing (оно построено на графической структуре SWT). – Sinjo

ответ

4

Вы можете создать заставку с помощью редактора изображений, например, Photoshop или GIMP. Сохраните изображение в формате, поддерживаемом Java, например JPG, GIF или PNG. Создайте заставку с разрешением, которое будет работать на устройствах с низким разрешением, таких как нетбуки и проекторы.

E.g. заставка Затмение ~ 450x300 пикселей:

enter image description here

Чтобы отобразить изображение, вы можете использовать JDialog, чьи границы и кнопка закрытия были скрыты с помощью setUndecorated(true). JDialog может содержать один JLabel. Поместите JDialog и JLabel для отображения всего изображения. Свойство JLabel's icon должно быть установлено на изображение заставки.

Вы можете отображать заставку в течение фиксированного количества времени, используя Swing's Timer class. Подумайте о том, чтобы позволить пользователю необязательно отключить заставку, чтобы они не всегда тратили время на просмотр, каждый раз, когда они запускают вашу программу.

Или, вместо того, чтобы использовать таймер для отображения заставки в течение фиксированного времени, вы могли бы скрыть экран заставки, как только приложение завершит инициализацию. То, что подразумевает «инициализация приложения», специфично для вашего приложения. Это подход, который использует Eclipse (его экран заставки даже имеет индикатор выполнения).


Ваш вопрос на самом деле, кажется, о Затмения «Экран приветствия» (см скриншот ниже), а не «заставки экрана» Eclipse. Экран приветствия включает интерактивные области. Java имеет ограниченные возможности для отображения содержимого HTML. См. http://docs.oracle.com/javase/tutorial/uiswing/components/html.html для некоторых деталей. Встроенная поддержка Java для HTML довольно ограничена и поэтому может не соответствовать вашим потребностям. Вот руководство, которое говорит об использовании контента HTML только для чтения JEditorPane для отображения и захвата гиперссылки кликов события для выполнения пользовательских действий: http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-JEditorPane.html

enter image description here

+0

Майк - спасибо за большое предложение! Но на странице заставки в Eclipse есть кнопки/ссылки на нее, которые позволяют вам использовать разные разделы графического интерфейса. Я знаю, что Eclipse - это SWT- (не Swing!), Но поддерживает ли Swing что-то вроде этой созданной вами идеи JLabel, что позволит использовать интерактивные интерактивные разделы? – IAmYourFaja

+0

@AdamTannon Извините, я думал, что вы имели в виду экран заставки, который отображается во время загрузки Eclipse (см. Скриншот в моем ответе). Я думаю, что экран, о котором вы говорите, - это экран «Добро пожаловать». Вы можете увидеть его, выбрав «Справка» (меню) -> «Добро пожаловать».Этот экран более сложный, и я думаю, что (по крайней мере, в Swing) потребуется некоторая специальная кодировка. –

2

Его очень легко делать. Просто создайте запись заставки в файле манифеста, которая указывает на ресурс изображения в вашем файле jar.

например.

SplashScreen-Image: resources/splash.png 

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

Смежные вопросы