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