【问题标题】:Swing components used for "splash" pages?用于“启动”页面的 Swing 组件?
【发布时间】:2012-02-24 22:37:59
【问题描述】:

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

【问题讨论】:

  • Eclipse 不是 Swing 应用程序(它建立在 SWT 图形框架之上)。

标签: java swing splash-screen


【解决方案1】:

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

例如Eclipse 初始屏幕约为 450x300 像素:

要显示图像,您可以使用 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

【讨论】:

  • 迈克 - 谢谢你的好建议!但是 Eclipse 中的启动页面上有可点击的按钮/链接,可将您带到 GUI 的不同部分。我知道 Eclipse 是基于 SWT(而不是 Swing!)的,但是 Swing 是否支持您的这种图像化的 JLabel 想法,允许可点击/交互式部分?
  • @AdamTannon 抱歉,我以为您的意思是 Eclipse 启动时显示的初始屏幕(请参阅我的回答中的屏幕截图)。我认为您正在谈论的屏幕是“欢迎”屏幕。您可以通过转到帮助(菜单)-> 欢迎来查看它。这个屏幕更复杂,我认为(至少在 Swing 中)需要一些自定义编码。
【解决方案2】:

【讨论】:

  • 酷。我不知道 Java 1.6 中引入的 Swing 类SplashScreen。谢谢。
【解决方案3】:

这真的很容易做到。只需在清单文件中创建一个闪屏条目,该条目指向 jar 文件中的图像资源。

例如

SplashScreen-Image: resources/splash.png

图像甚至可以具有透明度,因此您可以让它看起来是非矩形的。

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多