以编程方式显示SplashScreen

时间:2011-11-20 19:30:10

标签: java splash-screen

我目前正在开发Java应用程序,这是我的第一个Java应用程序。所以我创建了一个文件Splash.png并将其放入应用程序的源文件夹resources

我已经设法通过JVM参数-splash:resources/Splash.png在启动时显示Splash图像,但我的问题是;

如何以编程方式再次显示此启动画面?

我需要About菜单项的此功能。

4 个答案:

答案 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可能已经加载并准备就绪。