Java实现软件运行时启动信息窗口的方法_java

本文实例形式详述了Java实现一个程序运行时的启动窗口效果,如常用的Microsoft Word、 Borland JBuilder 等,这样的窗口称为信息窗口。使用信息窗口的好处是可以使用户在等待软件主界面出现前的一段时间中得知软件运行状态。本例将演示如何来实现信息窗口,当打开程序时,信息窗口先显示,并在窗口上倒计时,直到“waiting 0”时,关闭该窗口,显示程序的主窗口。

该功能的主要实现方法如下:

一般来说,大多数的信息窗口是没有标题栏的,因此信息窗口不能由继承JFrame 类来实现,一种简单的做法是通过继承JWindow 来实现(当然继承Window 类也可以,但一个原则是尽量使用swing 中的界面
类)。另外,本例用到java.awt 包中的MediaTracker 类。使用该类的好处是可以更好地管理程序中要使用的图片,同时还可以保证图片和界面同时显示,避免了窗口显示后很久才显示图片的缺点。

具体操作步骤如下:

1.新建一个Project,取名为JSpleshWindowDemo,其他设置按默认值。

2.新建一个Application ,取名为JSpleshWindowDemo,主窗口取名为MainFrame,主窗口标题取名为JSpleshWindowDemo。

3.先来编写信息窗口的代码。新建一个新类SpleshWindow.java,继承java.swing.JWindow类。在SpleshWindow 类中,定义新的属性,代码如下:

private String statusStr=null; //信息窗口中要显示的信息
private Image logoImg=null; //信息窗口中的显示图片

4.向构造方法中添加代码,加载图片并初始化窗体,实现代码如下:

public SpleshWindow(JFrame owner) { //以JFrame 对象为参数,可以是信息窗口和主窗口交互
super( owner );
// 加载图片
logoImg=getToolkit().getImage( ClassLoader.getSystemResource("images/splesh.jpg") );
// 等待图片加载完成
java.awt.MediaTracker tracker=new java.awt.MediaTracker( this ); //创建一个MediaTracker 对象
tracker.addImage( logoImg , 0 ); //将图片放入MediaTracker 对象中,序号为0
try{ //等待直到图片加载完成
tracker.waitForAll();
}catch ( InterruptedException e ) {
e.printStackTrace();
}
// 设置信息窗体在屏幕上的显示位置
setLocation( getToolkit().getScreenSize().width/2 - logoImg.getWidth(this)/2 , getToolkit().getScreenSize().height/2 -
logoImg.getHeight(this)/2 );
setSize( logoImg.getWidth(this) , logoImg.getHeight(this) ); // 设置窗口大小
}

5.编写设置显示信息的方法,代码如下:

public void setStatus( String status ){
statusStr=status;
paint( getGraphics() ); // 重画窗口来更新信息窗口中的显示信息
}

6.重置paint()方法来绘制图片和显示信息的方法,代码如下:

public void paint(Graphics g) {
/**@todo Override this java.awt.Component method*/
super.paint(g);
//绘制图片
if ( logoImg!=null )
g.drawImage( logoImg , 0 , 0 , this );
//绘制显示信息
if ( statusStr!=null ){
g.setColor(Color.red);
g.drawString( statusStr , 240 , getSize().height-250 );
}
}

7.编写MainFrame 类,实现java.lang.Runnable 接口,并定义新的属性,设置如下:

private SpleshWindow spleshWindow=null;

8.向MainFrame 类的初始化方法中,添加运行信息窗口的代码,实现代码如下:

private void jbInit() throws Exception {
//setIconImage(Toolkit.getDefaultToolkit().createImage(MainFrame.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("JSpleshWindowDemo");
//创建新的线程,运行信息窗口
Thread t = new Thread(this);
t.start();
// 等待信息窗口显示
try{
t.join();
}catch ( InterruptedException e ){
e.printStackTrace() ;
}
// 向信息窗体中显示消息
long x=System.currentTimeMillis();
while ( System.currentTimeMillis()-x <35000 )
{
System.out.print( "Waiting "+(35000-System.currentTimeMillis()+x+" \r") );
// you can set status string in splash window
spleshWindow.setStatus( "Waiting "+(35-(long)(System.currentTimeMillis()/1000)+(long)(x/1000)) );
}
//关闭信息窗体
if ( spleshWindow!=null ) {
spleshWindow.dispose();
spleshWindow=null;
}
}

9.编写MainFrame 类的run()方法,如下所示:

public void run() {
//新建一个信息窗体并显示
spleshWindow=new SpleshWindow( this );
spleshWindow.show();
// throw new java.lang.UnsupportedOperationException("Method run() not yet implemented.");
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, 软件
, 启动
, 运行时
信息窗口
java实现窗口跳转、java实现弹出窗口保存、java实现多个窗口切换、java如何实现窗口停靠、java实现登录窗口,以便于您获取更多的相关知识。

时间: 2024-09-26 09:01:48

Java实现软件运行时启动信息窗口的方法_java的相关文章

C++MFC编程笔记day04 运行时类信息和窗口的动态、静态切分

运行时类信息 程序在运行时,获取对象类的信息及类的继承关系实现:1.定义类继承自CObject类.2.类内声明宏DECLARE_DYNAMIC(),类外实现宏IMPLEMENT_DYNAMIC()3.使用:BOOL IsKindOf(CRuntimeClass* pClass)//对象是否属于某个类CRuntimeClass* GetRuntimeClass( );//获取对象运行时类信息,经常使用RUNTIME_CLASS(类名)代替. 示例: #include "stdafx.h"

举例讲解Java的RTTI运行时类型识别机制_java

1.RTTI:运行时类型信息可以让你在程序运行时发现和使用类型信息. 在Java中运行时识别对象和类的信息有两种方式:传统的RTTI,以及反射.下面就来说下RTTI. RTTI:在运行时,识别一个对象的类型.但是这个类型在编译时必须已知. 下面通过一个例子来看下RTTI的使用.这里涉及到了多态的概念:让代码只操作基类的引用,而实际上调用具体的子类的方法,通常会创建一个具体的对象(Circle,Square,或者Triangle,见下例),把它向上转型为Shape(忽略了对象的具体类型),并在后面

C++:RTTI(RunTime Type Information)运行时类型信息 详解

RTTI, RunTime Type Information, 运行时类型信息, 是多态的主要组成部分, 通过运行时(runtime)确定使用的类型, 执行不同的函数,复用(reuse)接口. dynamic_cast<>可以 使基类指针转换为派生类的指针, 通过判断指针的类型, 可以决定使用的函数. typeid(), 可以判断类型信息, 判断指针指向位置, 在多态中, 可以判断基类还是派生类. 代码: /* * test.cpp * * Created on: 2014.04.22 * A

java显示当前运行时的参数(java运行参数)_java

显示当前运行java代码的运行时的各种参数. 不带显String操作. 复制代码 代码如下: package systeminfo; import java.util.Iterator;import java.util.Map.Entry;import java.util.Properties; public class sysinfo {  public static void main(String[] args) {  Properties p = System.getProperties

asp.net-ASP.NET中运行时输入信息没有经过规则判断就直接添加了

问题描述 ASP.NET中运行时输入信息没有经过规则判断就直接添加了 而且会出现这种情况, 解决方案 说明你的判断没起作用,你在看看它有什么隐错

如何知道一个im软件运行时所需要的服务器大小

问题描述 如何知道一个im软件运行时所需要的服务器大小 具体要一些什么数据去计算,计算公式是什么. 我要的是100人并发时所需要的服务器最低配置 解决方案 这样看你的带宽,要处理的业务,数据量大,肯定并发支持就小,以及你服务端程序的设计,而不是说什么配置的就能满足怎么要求的并发

运行bat时隐藏cmd窗口的方法(bat隐藏窗口 隐藏运行bat文件)_vbs

这里简单的整理下常用方法,方便大家使用.都是通过vbscript的代码.运行bat时隐藏cmd窗口的方法 可以编辑一个vbs脚本,在其中以隐藏窗口运行批处理程序. 复制代码 代码如下: Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c 批处理程序名",vbhide 将上面代码拷贝到记事本中,保存为"runbat.vbs"或者其它的名字(扩展名必须是.vbs),然后点击运行生成的脚本runb

android-程序开始运行时强制关闭,Adapter方法出错(用来实现闹钟的时间列表)

问题描述 程序开始运行时强制关闭,Adapter方法出错(用来实现闹钟的时间列表) package pcAlarm.pack; import java.util.Calendar; import java.util.Currency; import pcAlarm.pack.PCAlarmActivity; import android.app.Activity; import android.app.TimePickerDialog; import android.content.Contex

php运行时动态创建函数的方法

 这篇文章主要介绍了php运行时动态创建函数的方法,涉及php流程语句与create_function函数的使用技巧,需要的朋友可以参考下     本文实例讲述了php运行时动态创建函数的方法.分享给大家供大家参考.具体分析如下: 一般的语言函数必须定义了在运行,而php支持在运行时动态创建函数,下面是一个简单的范例,在运动时根据不同的条件创建函数$a ? 1 2 3 4 5 6 7 8 9 10 11 <?php if (count($_POST) > 0) { $prepped = cre