博客
关于我
java程序启动界面的实现
阅读量:581 次
发布时间:2019-03-11

本文共 3385 字,大约阅读时间需要 11 分钟。

案例说明

       展示两种不同的程序启动界面

案例过程

       第一种

代码如下

package com.student.frame;

/**

 * 系统启动类

 * @authorAdministrator

*/

 

//导入包

import javax.swing.*;

import java.awt.*;

import java.util.Timer;

import java.util.TimerTask;

 

//启动主类继承窗体父类并实现线程接口

public class Index extends JWindow implements Runnable {

 

   private staticfinal long serialVersionUID = 1L;

   // 创建进度条属性

   privateJProgressBar jpb;

   // 定义一张图片标签

   private JLabeljl;

 

   // 构造方法

   public Index() {

      init();

   }

 

   // 初始化方法

   public voidinit() {

      // 实例化图片标签

      jl = newJLabel(new ImageIcon("image/0.png"));

      // 创建进度条

      jpb = newJProgressBar();

      // 设置进度条属性

      jpb.setStringPainted(true);//显示当前进度值信息

      jpb.setIndeterminate(false);//确定进度条执行完成后不来回滚动

      jpb.setBorderPainted(false);//设置进度条边框不显示

      jpb.setBackground(Color.pink);//设置进度条的背景色

      setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));//设置光标

      // 设置布局添加组件

      this.add(jl,BorderLayout.NORTH);

      this.add(jpb,BorderLayout.SOUTH);

 

      // 设置窗体属性

      this.setSize(384,292);//设置大小

      this.setLocationRelativeTo(null);//设置剧中显示

      //下面两句也可以设置居中显示窗体

      //Dimensionscreen = getToolkit().getScreenSize(); // 得到屏幕尺寸

      //setLocation((screen.width- getSize().width) / 2, (screen.height - getSize().height) / 2); // 设置窗口位置

      this.pack();// 窗口适应组件尺寸

      this.setVisible(true);

 

   }

 

   // 设置线程方法

   public void run(){

     

      int[]progressValue = { 0, 1, 5, 8, 14, 17, 26, 35, 38, 43, 49, 56, 65, 71, 75, 78,86, 94, 98, 99, 100 };

      for (int i =0; i < progressValue.length; i++) {

        try {

           // 休眠1秒,再执行

           Thread.sleep(1000);

        } catch(InterruptedException e) {

           // TODOAuto-generated catch block

           e.printStackTrace();

        }

        jpb.setValue(progressValue[i]);//取得数组中的进度值

      }

     

      while (true) {

        try {

           Thread.sleep(1000);

        } catch(InterruptedException e) {

           // TODOAuto-generated catch block

           e.printStackTrace();

        }

        // 当进度完成后,执行相应的操作,如切换到其他的窗口,同时关闭进度条窗口等

        newUserLogin();

        // 关闭进度条窗口

        this.dispose();

        break;

      }

   }

 

   // 启动类主方法

   public staticvoid main(String[] args) {

      // new 一个类对象

      Index i = newIndex();

      // 定义线程

      Thread t = newThread(i);

      t.start();

   }

 

 

}

第二种

import javax.swing.*;

import java.awt.*;

import java.net.*;

 

//程序启动界面

 

public class JWindowDemo extends JWindow implementsRunnable {

   ThreadsplashThread; // 进度条更新线程

   JProgressBarprogress; // 进度条

 

   publicJWindowDemo() {

      Containercontainer = getContentPane(); // 得到容器

      setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));// 设置光标

      URL url =getClass().getResource("login.jpg"); // 图片的位置

      if (url !=null) {

         container.add(new JLabel(new ImageIcon(url)),BorderLayout.CENTER); // 增加图片

      }

      progress = newJProgressBar(1, 100); // 实例化进度条

      progress.setStringPainted(true);// 描绘文字

      progress.setString("加载程序中,请稍候......");// 设置显示文字

      progress.setBackground(Color.white);// 设置背景色

      container.add(progress,BorderLayout.SOUTH); // 增加进度条到容器上

 

      Dimensionscreen = getToolkit().getScreenSize(); // 得到屏幕尺寸

      pack(); // 窗口适应组件尺寸

      setLocation((screen.width- getSize().width) / 2, (screen.height - getSize().height) / 2); // 设置窗口位置

   }

 

   public voidstart() {

      this.toFront();// 窗口前端显示

      splashThread =new Thread(this); // 实例化线程

      splashThread.start();// 开始运行线程

   }

 

   public void run(){

      setVisible(true);// 显示窗口

      try {

        for (int i =0; i < 100; i++) {

           Thread.sleep(100);// 线程休眠

           progress.setValue(progress.getValue()+ 1); // 设置进度条值

        }

      } catch(Exception ex) {

        ex.printStackTrace();

      }

      dispose(); // 释放窗口

      //new MainFrame();运行主程序

   }

 

   public staticvoid main(String[] args) {

      JWindowDemosplash = new JWindowDemo();

      splash.start();// 运行启动界面

   }

}

案列总结

       根据自己的喜好,放置不同的启动图片即可!

                         公众号 java一号 更多java实战项目资料、技术干活。更重要的是小猿愿成为你编程路上的一个朋友!

文章首发地址: www.javayihao.top

首发公众号: java一号

你可能感兴趣的文章
Nginx反向代理和负载均衡部署指南
查看>>
Nginx反向代理是什么意思?如何配置Nginx反向代理?
查看>>
nginx反向代理解决跨域问题
查看>>
nginx反向代理解决跨域问题,使本地调试更方便
查看>>
nginx反向代理转发、正则、重写、负摘均衡配置案例
查看>>
Nginx反向代理配置
查看>>
Nginx启动SSL功能,并进行功能优化,你看这个就足够了
查看>>
nginx启动脚本
查看>>
Nginx和Tomcat的区别
查看>>
Nginx在Windows上和Linux上(Docker启动)分别配置基本身份认证示例
查看>>
Nginx在Windows下载安装启动与配置前后端请求代理
查看>>
Nginx在开发中常用的基础命令
查看>>
Nginx基础知识点与使用场景梳理
查看>>
Nginx多域名,多证书,多服务配置,实用版
查看>>
nginx如何实现图片防盗链
查看>>
Nginx学习总结(10)——Nginx前后端分离将多个请求转发到多个Tomcat,负载均衡反向代理
查看>>
Nginx学习总结(11)——提高Nginx服务器的安全性,稳定性和性能的12种技巧
查看>>
Nginx学习总结(12)——Nginx各项配置总结
查看>>
Nginx学习总结(13)——Nginx 重要知识点回顾
查看>>
Nginx学习总结(14)——Nginx配置参数详细说明与整理
查看>>