我目前正在开发Java应用程序,这是我的第一个Java应用程序。所以我创建了一个文件Splash.png
并将其放入应用程序的源文件夹resources
。
我已经设法通过JVM参数-splash:resources/Splash.png
在启动时显示Splash图像,但我的问题是;
如何以编程方式再次显示此启动画面?
我需要About
菜单项的此功能。
答案 0 :(得分:4)
Here是以编程方式使用启动画面的一个杰出示例
-splash也在那里描述。
答案 1 :(得分:2)
使用java.awt.SplashScreen
课程。
BTW我不知道JVM有这么酷的选项'-splash'。所以,感谢您的信息!
答案 2 :(得分:2)
感谢您的大力帮助。 我认为没有任何功能可以做到这一点,所以我只编写了一个JFrame,我可以在启动时显示而不是Splash屏幕。对于有人可能需要代码的情况,我也只是在这里发布:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class AboutWindow extends JFrame implements MouseListener {
public AboutWindow() {
// show splash screen image
ImageIcon icon = new ImageIcon("resources/Splash.png");
JLabel label = new JLabel(icon);
getContentPane().add(label, BorderLayout.CENTER);
// setup window correct
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setResizable(false);
setUndecorated(true);
pack();
// place it at the right position
Dimension windowDimension = Toolkit.getDefaultToolkit().getScreenSize();
int x = (windowDimension.width-getWidth())/2;
int y = (windowDimension.height-getHeight())/3;
setLocation(x, y);
// add the mouse listener
addMouseListener(this);
}
@Override
public void mouseClicked(MouseEvent me) {
dispose();
}
@Override
public void mousePressed(MouseEvent me) {
// do nothing
}
@Override
public void mouseReleased(MouseEvent me) {
// do nothing
}
@Override
public void mouseEntered(MouseEvent me) {
// do nothing
}
@Override
public void mouseExited(MouseEvent me) {
// do nothing
}
}
答案 3 :(得分:1)
如何以编程方式再次显示此启动画面?
功能使用的基于AWT的SplashScreen
API提供了getImageURL()
方法,在这方面可能很方便。 SplashScreen
实例需要在main()
的早期获得,然后才能在屏幕上显示任何GUI元素。
当需要显示图像时,有许多可能性最适合不同的任务和使用图像的方式。显示它的最简单方法之一是:
JLabel splashLabel = new JLabel(new ImageIcon(splashURL));
在mKorbel提到的对话框或窗口中弹出它以在屏幕上显示它。通常对于“类似飞溅”的图像,我们希望使用纯AWT,但这种情况有点不同,因为GUI已经在屏幕上,因此Swing可能已经加载并准备就绪。