动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.java 与 mysql 中文问题的处理.
.《Java 手机/PDA 程序设计入门》.
.用Socket类实现HTTP协议客户端应.
.线程堆:给你的线程命名,察看你.
.java 基本数据类型.
.Spring AOP在DWR安全上的应.
.用Servlets动态生成图片.
.Struts框架基础篇.
.Java常用的加密解密数字签名等API.
.小小调查通.
.XP 精华:何使 Java 项目获得更大.
.Java 基本语法(一)——数据类型.
.JScript 函数.
.软件过程的发展的思考.
.Java学习从入门到精通(1).
.精通J2ME中的Hello World.
.初学者入门:J2SDK和TOMCAT的安装.
.Java正则表达式详解(上).
.Java二进制兼容性概述.
.对JAVA的多线程浅析.

应用Mustang里新的启动画面功能

发表日期:2008-1-5 |



  启动画面是现代图形界面的应用程序里一个标准组成部分。它的主要用途就是告诉用户:应用程序正在启动。显示一个精致的和看起来专业的启动画面的应用程序可吸引用户的注重并且让用户知道应用程序正在启动中。此外,启动画面还可提供行情信息。有时候还是由于法律上的原因:展现版权信息,第三方的标志以及其他信息。
  
  使用Java基本类和Swing(JFC/Swing)或者AWT来创建为JAVA应用程序创建启动画面。然而启动画面仅是用来告诉用户程序正在启动中,所以启动画面从弹出到应用程序启动完成的这段时间要尽量短。在弹出启动画面前,应用程序需要装载和初始化JAVA虚拟机、AWT通常是SWING以及应用程序所需要的库文件。直到现在,基于JAVA的启动画面的停留时间要比预期的短。
  
  JAVA平台标准版本6,代号为Mustang,提供了解决:可让启动画面更早地出来,甚至是在虚拟机启动前。现在,JAVA应用程序启动器能为一个图像编码并且将它显示在一个简单的没有任何装饰的窗口里(如图1)
  
 应用Mustang里新的启动画面功能

  注重:为了运行本文中的代码,需要下载与安装Mustang[https://mustang.dev.java.net/]
  
  用清单文件里的一个选项可让以JAR压缩包形式的应用程序显示一个启动画面。其他类型的程序通过命令行选项来做到。你可用桌面快捷方式或者脚本来提供命令行选项给JAVA应用程序启动器。启动画面上可显示GIF、PNG或者是JPEG的透明、半透明和动画的图象。
  
  有两种途径来显示本机启动画面:
  
  假如程序是由快捷方式或是命令行启动的,那么用 -splash参数:JAVA应用程序用来显示启动画面的选项:
  
  java -splash:filename.gif SplashTest
  
  假如程序是以JAR形式打包的,可在清单文件里用SplashScreen-Image选项来显示启动画面。把图象也打包在JAR里并且在选项里指明图象路径。比如,在mainfest.mf文件里使用如下代码:
  Manifest-Version: 1.0
  Main-Class: SplashTest
  SplashScreen-Image: filename.gif
  
  命令行的形式要优先于清单文件里的设置。
  
  这个特性很轻易使用。多数情况下,你所要做的就是给出图象和启动选项。启动画面在第一个AWT或是SWING窗口显示后会自动关闭。
  
  在某些情形下,可能要在启动画面上显示另外一些动态信息。SplashScreen类可能被用来关闭启动画面、更换启动画面里的图象、获取图象位置或者大小以及绘制启动画面。这个类不能用来创建启动画面。应该用命令行选项或者是清单文件里的选项来实现启动画面。
  
  此外,SplashScreen类不可实例化。仅有此类的一个实例可存在,可通过静态方法getSplashScreen()来获得。假如应用程序既不以命令行也不以清单文件选项来创建启动画面的话,那么getSplashScreen()方法返回null.
  
  典型情况是,启动画面显示在屏幕上并且在画面上还显示些其他东西,比如进度指示。启动画面窗口有个alpha通道的覆盖面,可通过通常的Graphics或Graphics2D接口来访问这个覆盖面。
  
  如下代码示范了如何第一次获取SplashScreen对象,以及如何通过getGrpahics()方法来获取图形句柄。接下来,得到启动画面的大小,假如你已经在画面上绘制了其他内容了,如何来清除图象。设置AlphaComposite.Clear 复合模式,在整个启动画面上绘制矩形。恢复绘制模式以及绘制你想要的内容。最后,调用update()方法来显示你所绘制的内容。
  
  SplashScreen splash = SplashScreen.getSplashScreen();
  Graphics2D g = (Graphics2D)splash.getGraphics();
  Dimension size = splash.getDimension();
  g.setComposite(AlphaComposite.Clear);
  g.fillRect(0, 0, size.width, size.height);
  g.setPaintMode();
  
  同样,也许想以一个AWT或SWING窗口来替代启动画面:
  
  SplashScreen splash = SplashScreen.getSplashScreen();
  // OBTain the splash-screen bounds.
  Rectangle splashBounds = splash.getBounds();
  
  给你看看新的在与指定splashBounds一样的位置上手工代码出来的启动窗口。原先的启动窗口自动关闭。
  
  通过调用setImageURL方法来更换启动画面上的图象。假如想在第一个AWT或者SWING窗口显示前(少数情况下AWT或SWING不被图形界面应用程序所使用)就关闭启动画面,那么可调用SplashScreen.close方法。
  
  下面给出一个程序来举例说明启动画面如何工作:
  
  import java.awt.*;
  import java.awt.event.*;
  public class SplashTest extends Frame implements ActionListener {
  static void renderSplashFrame(Graphics2D g, int frame) {
  final String[] comps = {"foo", "bar", "baz"};
  g.setComposite(AlphaComposite.Clear);
  g.fillRect(130,250,280,40);
  g.setPaintMode();
  g.setColor(Color.BLACK);
  g.drawString("Loading "+comps[(frame5)%3]+"...", 130, 260);
  g.fillRect(130,270,(frame*10)%280,20);
  }
  public SplashTest() {
  super("SplashScreen demo");
  setSize(500, 300);
  setLayout(new BorderLayout());
  Menu m1 = new Menu("File");
  MenuItem mi1 = new MenuItem("Exit");
  m1.add(mi1);
  mi1.addActionListener(this);
  
  MenuBar mb = new MenuBar();
  setMenuBar(mb);
  mb.add(m1);
  final SplashScreen splash = SplashScreen.getSplashScreen();
  if (splash == null) {
  System.out.println("SplashScreen.getSplashScreen() returned null");
  return;
  }
  Graphics2D g = (Graphics2D)splash.getGraphics();
  if (g == null) {
  System.out.println("g is null");
  return;
  }
  for(int i=0; i<100; i++) {
  renderSplashFrame(g, i);
  splash.update();
  try {
  Thread.sleep(200);
  }
  catch(InterruptedException e) {
  }
  }
  splash.close();
  setVisible(true);
  toFront();
  }
  public void actionPerformed(ActionEvent ae) {
  System.exit(0);
  }
  public static void main (String args[]) {
  SplashTest test = new SplashTest();
  }
  }
  
  注重:getGraphics 为给启动画面上覆盖用的图象创建了一个图形上下文(如同Graphics对象),这样就可在启动画面上进行绘制。不同于直接在主画面上进行绘制,绘制工作实际上是在主图象之上的图象以alpha混合方式进行的。同时也请注重:在覆盖面图象上的绘制不必更新启动画面窗口上的内容。如过想让启动创面窗口立即更新的话,只需要在SpalshScreen上调用update()方法.
上一篇:使用JWhich工具管理CLASSPATH 人气:411
下一篇:简单的网页关键词匹配工具 人气:507
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-6 Menalto Gallery v2.3 Rc2 多国语
2008-10-6 花香盈路(Hxcms) v9.0
2008-10-6 华军软件下载系统 v1.5
2008-10-6 e107 v0.7.13
2008-10-6 (开源PHP框架) CodeIgniter v1.6
2008-10-6 PHP在线考试系统PPExam v1.2.6 b
2008-10-6 SiteDynamic企业网站管理系统 v1
2008-10-6 WebPlayer9 P2P视频点播电影整站
2008-10-6 BCMS v1.1 测试版
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成