NetBeans新手,只是注意到文件>>项目属性>>应用程序对话框有一个标有启动画面的文本字段,允许您指定在程序启动时要显示的图像的路径。
我想自定义我的启动画面的工作方式(添加进度条等),并希望从头开始编码,但不知道从哪里开始。基于Java / Swing的启动画面的最佳实践是什么?
感谢所有输入!
答案 0 :(得分:2)
项目属性 - >申请 - >启动画面允许您将图像添加到应用程序。此属性在名为MANIFEST.MF
的{{1}}中设置值,例如SplashScreen-Image:
此属性将自动使图像显示为闪屏。它在NetBeans中不起作用,必须在IDE外部运行。
有一个教程Splash Screen Beginner Tutorial详细介绍了如何使用它。本教程是针对NetBeans 6.8完成的,但是可以在7.2.1上使用,这是本文发布时的最新版本。
答案 1 :(得分:0)
有几种方法可以做到这一点。
要执行简单的初始屏幕(图像),您可以在java应用程序的命令行中指定它。
java -splash:<file name> <class name>
但是,如果你想要一个进度条,你将不得不做一些更复杂的事情,并自己编写一些代码。这是通过以下方式完成的。
这应该立即显示启动,然后在应用程序完全加载后隐藏。
要查看某些启动画面代码,请选择look here。链接中的实现仅显示如何使用-splash命令实现所需功能,但它将为您提供一个良好的开端,以便包括您请求的进度条。
答案 2 :(得分:0)
我不确定NetBeans是如何做到的,但自版本6以来JRE支持Splash Screens。请参阅http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/splashscreen/
答案 3 :(得分:0)
启动画面只是java.awt.Window或未修饰的javax.swing.JFrame的一个实例。
要创建窗口,只需说new Window(null)
,然后设置大小和位置(使用可以计算屏幕中心的位置),然后说出window.setVisible(true)
由于这是你自己的窗口,你可以做你想做的事情:设置布局,图像,向南方添加处理栏等。
你也可以使用JFrame:new JFrame()。setUndecorated(true)`
答案 4 :(得分:0)
我希望这会对你有所帮助,这是一个如何使用虚拟进度条创建一个简单的启动画面的小例子:
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();
}
}
干杯!
答案 5 :(得分:0)
如果您的应用程序是使用NetBeans平台构建的,那么这是一个关于启动画面自定义的教程:http://wiki.netbeans.org/Splash_Screen_Beginner_Tutorial
答案 6 :(得分:0)
还要考虑在NetBeans平台(基于Swing的RCP)之上构建应用程序。其中一个好处是:它带有一个带有进度条的可自定义闪屏。
示例进度条: http://platform.netbeans.org/tutorials/nbm-paintapp.html#wrappingUp
将Swing应用程序移植到NetBeans平台: http://platform.netbeans.org/tutorials/60/nbm-porting-basic.html
更多链接:
答案 7 :(得分:0)
有一个示例Javafx相当于Splash屏幕。然而,这个启动画面基本上是一个java swing applet,它从javafx调用以显示给用户,并使用进度条和加载内容的标题模拟或多或少的eclipse和netbeans启动画面。 This是链接。
您必须能够获取代码并将用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));