2012-02-24 46 views
2

我看到一些使用Welcome!/“splash”页面加载的Swing应用程序(如Eclipse)。这是什么样的Swing组件?它有点像网页(像老的<imagemap> s!)嵌入Swing应用程序中,非常酷。用于“飞溅”页面的Swing组件?

+3

Eclipse不是Swing应用程序(它建立在SWT图形框架上)。 – Sinjo 2012-02-24 22:45:33

回答

4

您可以使用图像编辑器设计启动画面,如Photoshop或GIMP。以Java支持的格式保存图像,如JPG,GIF或PNG。以适用于上网本和投影仪等低分辨率设备的分辨率设计启动屏幕。

E.g. Eclipse的启动画面是〜450x300像素:

enter image description here

要显示的图像,你可以使用一个JDialog,其边框和关闭按钮已经通过setUndecorated(true)隐藏。 JDialog可以包含一个JLabel。调整JDialog和JLabel的大小以显示整个图像。 JLabel的icon属性应该设置为启动屏幕图像。

通过采用Swing's Timer class,您可以在固定的时间内显示启动画面。考虑让用户可以选择禁用启动画面,以免他们每次启动程序时都浪费时间观看它。

或者,应用程序完成初始化后,您可以考虑隐藏启动画面,而不是使用计时器来显示启动画面一段固定的时间。什么“初始化应用程序”需要特定于您的应用程序。这是Eclipse使用的方法(它的启动画面甚至有一个进度条)。


你的问题实际上似乎是关于Eclipse“欢迎屏幕”(参见下图),而不是Eclipse的“闪屏”。欢迎屏幕包含可点击区域。 Java有一些有限的能力来显示HTML内容。有关详细信息,请参阅http://docs.oracle.com/javase/tutorial/uiswing/components/html.html。 Java内置的对HTML的支持相当有限,因此可能无法满足您的需求。这里是谈论使用只读JEditorPane中显示HTML内容,并捕捉超链接点击事件执行自定义操作指南: http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-JEditorPane.html

enter image description here

+0

迈克 - 感谢您的伟大建议!但Eclipse中的启动页面上有可点击的按钮/链接,这些按钮/链接将带您进入GUI的不同部分。我知道Eclipse是SWT(不是Swing!)的基础,但Swing是否支持像这样的JLabel图像的想法,这将允许可点击/交互式部分? – IAmYourFaja 2012-02-24 22:55:14

+0

@AdamTannon对不起,我以为你的意思是Eclipse启动时显示的启动画面(请参阅我的答案中的屏幕截图)。我认为你所说的屏幕是这个“欢迎”屏幕。你可以通过帮助(菜单) - >欢迎来看到它。这个屏幕更复杂,我认为(至少在Swing中)需要一些自定义编码。 – 2012-02-24 23:00:07

2

它真的很容易去做。只需在清单文件中创建一个指向您jar文件中图像资源的启动画面条目。

例如

SplashScreen-Image: resources/splash.png 

该图像甚至可以具有透明度,所以你可以使它看起来是非矩形的。