java程序启动界面的实现

案例说明

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

案例过程

       第一种

代码如下

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一号

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序三两行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值