Java程序启动界面

package kangchuang;

import javax.swing.*;

import java.awt.*;
import java.net.*;

public class Login extends JWindow implements Runnable {
    /**
     * sirkang - 20190104
     * @JWindowDemo  程序启动界面
     */
    private static final long serialVersionUID = -3617090132430176963L;
    Thread splashThread; // 进度条更新线程
    JProgressBar progress; // 进度条

    public Login() {
        Container container = getContentPane(); // 得到容器
        setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); // 设置光标
        URL url = getClass().getResource("login.gif"); // 图片的位置
        if (url != null) {
            container.add(new JLabel(new ImageIcon(url)), BorderLayout.CENTER); // 增加图片
            this.setBackground(new Color(0, 0, 0, 0));//设置图片背景透明化
        }
        progress = new JProgressBar(1, 100); // 实例化进度条
        progress.setStringPainted(true); // 描绘文字
        progress.setString("程序加载中,请稍候......"); // 设置显示文字
        progress.setBackground(Color.white); // 设置背景色
        container.add(progress, BorderLayout.SOUTH); // 增加进度条到容器上

        Dimension screen = getToolkit().getScreenSize(); // 得到屏幕尺寸
        pack(); // 窗口适应组件尺寸
        setLocation((screen.width - getSize().width) / 2,(screen.height - getSize().height) / 2); // 设置窗口位置
    }

    public void start() {
        this.toFront(); // 窗口前端显示
        splashThread = new Thread(this); // 实例化线程
        splashThread.start(); // 开始运行线程
    }

    public void run() {
        setVisible(true); // 显示窗口
        try {
            for (int i = 0; i < 100; i++) {
                Thread.sleep(30); // 线程休眠
                progress.setValue(progress.getValue() + 1); // 设置进度条值
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        dispose(); // 释放窗口
        showFrame(); // 运行主程序
    }

    static void showFrame() {
        JFrame frame = new JFrame("程序启动界面演示"); // 实例化JFrame对象
        double lx = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
        double ly = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
        frame.setLocation(new Point((int) (lx / 2) - 800 / 2,(int) (ly / 2) - 600 / 2));// 设定窗口出现位置
        frame.setSize(800, 600);//程序窗口大小
        frame.setResizable(false);// setResizable决定了窗体是否可以放大。true则可以最大化,false则不可变
        frame.setVisible(true);// 窗口可见
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 使能关闭窗口,结束程序    
    }

    public static void main(String[] args) {
        Login splash = new Login();
        splash.start(); // 运行启动界面
    }
}

未经允许不得转载:康闯 » Java程序启动界面

赞 (3) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏