NetBeans的启动画面function如何工作?

NetBeans新手,只是注意到在文件>>项目属性>>应用程序对话框中有一个标记为启动屏幕的文本字段,允许您指定在程序启动时要显示的图像的路径。

我想自定义我的启动画面的工作方式(添加进度条等),并希望从头开始编码,但不知道从哪里开始。 基于Java / Swing的启动画面的最佳实践是什么?

感谢您的所有输入!

项目属性 – >应用程序 – >启动画面允许您将图像添加到应用程序。 此属性在MANIFEST.MF设置一个名为SplashScreen-Image:例如SplashScreen-Image: META-INF/GlassFish316x159.jpg此属性将自动使图像显示为闪屏。 它在NetBeans中不起作用,必须在IDE外部运行。

有一个教程Splash Screen初学者教程详细介绍了如何使用它。 本教程是针对NetBeans 6.8完成的,但是可以在7.2.1上使用,这是本文发布时的最新版本。

我不确定NetBeans是如何做到的,但自版本6以来JRE支持Splash Screens。请参阅http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/splashscreen/

启动画面只是java.awt.Window或未修饰的javax.swing.JFrame的一个实例。 要创建窗口只需说new Window(null) ,然后设置大小和位置(使用可以计算屏幕中心的位置),然后说window.setVisible(true)

由于这是您自己的窗口,您可以执行您想要的操作:设置布局,图像,向SOUTH添加处理栏等。

您还可以使用JFrame:new JFrame()。setUndecorated(true)`

有几种方法可以做到这一点。

要执行简单的初始屏幕(图像),您可以在java应用程序的命令行中指定它。

这是一个简单的例子

 java -splash:  

但是,如果你想要一个进度条,你将不得不做一些更复杂的事情,并自己编写一些代码。 这是通过以下方式完成的。

  1. 使用启动画面元素创建JWindow(或Window或未修饰的JFrame)组件
  2. 将其设置为可见
  3. 做其余的Swing GUI启动代码
  4. 将JFrame设置为可见,然后立即将JWindow设置为可见(false)

这应该几乎立即显示启动,然后在应用程序完全加载后隐藏。

要查看一些启动画面代码,请查看此处 。 链接中的实现仅显示如何使用-splash命令实现所需function,但它将为您提供一个良好的开端,以包括您请求的进度条。

我希望这对您有所帮助,它是如何使用虚拟进度条创建自己的简单启动画面的一个小示例:

 import java.awt.*; import java.awt.event.*; import javax.swing.*; class SplashScreen extends JWindow { private static JProgressBar progressBar = new JProgressBar(); private static SplashScreen execute; private static int count; private static Timer timer1; public SplashScreen() { Container container = getContentPane(); container.setLayout(null); JPanel panel = new JPanel(); panel.setBorder(new javax.swing.border.EtchedBorder()); panel.setBackground(new Color(255,255,255)); panel.setBounds(10,10,348,150); panel.setLayout(null); container.add(panel); JLabel label = new JLabel("Hello World!"); label.setFont(new Font("Verdana",Font.BOLD,14)); label.setBounds(85,25,280,30); panel.add(label); progressBar.setMaximum(50); progressBar.setBounds(55, 180, 250, 15); container.add(progressBar); loadProgressBar(); setSize(370,215); setLocationRelativeTo(null); setVisible(true); } public void loadProgressBar() { ActionListener al = new ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { count++; progressBar.setValue(count); if (count == 50){ timer1.stop(); execute.setVisible(false); //load the rest of your application } }}; timer1 = new Timer(50, al); timer1.start(); } public static void main (String args[]){ execute = new SplashScreen(); } } 

干杯!

还要考虑在NetBeans平台(基于Swing的RCP)之上构建应用程序。 其中一个好处是:它带有一个带有进度条的可定制的闪屏。

示例进度条: http : //platform.netbeans.org/tutorials/nbm-paintapp.html#wrappingUp

将Swing应用程序移植到NetBeans平台: http : //platform.netbeans.org/tutorials/60/nbm-porting-basic.html

更多链接:

http://netbeans.org/features/platform/index.html

http://netbeans.org/features/platform/all-docs.html

如果您的应用程序是使用NetBeans平台构建的,那么这是一个关于启动画面自定义的教程: http : //wiki.netbeans.org/Splash_Screen_Beginner_Tutorial

有一个示例Javafx相当于Splash屏幕。 然而,这个启动画面基本上是一个java swing applet,它从javafx调用以显示给用户,并使用进度条和加载内容的标题模拟或多或少的eclipse和netbeans启动画面。 这是链接。

您必须能够获取代码并分离出用java swings编写的启动画面代码并自行使用它。

这是一个自定义的java swings启动画面。 因此,它使用传统的闪屏

 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension labelSize = l.getPreferredSize(); setLocation(screenSize.width / 2 - (labelSize.width / 2), screenSize.height / 2 - (labelSize.height / 2));