
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程序启动界面
康闯

