亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

應用Mustang里新的啟動畫面功能

2019-11-18 11:55:19
字體:
來源:轉載
供稿:網友

  啟動畫面是現代圖形界面的應用程序里一個標準組成部分。它的主要用途就是告訴用戶:應用程序正在啟動。顯示一個精致的和看起來專業的啟動畫面的應用程序可吸引用戶的注重并且讓用戶知道應用程序正在啟動中。此外,啟動畫面還可提供行情信息。有時候還是由于法律上的原因:展現版權信息,第三方的標志以及其他信息。
  
  使用java基本類和Swing(JFC/Swing)或者AWT來創建為JAVA應用程序創建啟動畫面。然而啟動畫面僅是用來告訴用戶程序正在啟動中,所以啟動畫面從彈出到應用程序啟動完成的這段時間要盡量短。在彈出啟動畫面前,應用程序需要裝載和初始化JAVA虛擬機、AWT通常是SWING以及應用程序所需要的庫文件。直到現在,基于JAVA的啟動畫面的停留時間要比預期的短。
  
  JAVA平臺標準版本6,代號為Mustang,提供了解決:可讓啟動畫面更早地出來,甚至是在虛擬機啟動前?,F在,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 復合模式,在整個啟動畫面上繪制矩形?;謴屠L制模式以及繪制你想要的內容。最后,調用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.  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()方法.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人精品视频99在线观看免费| 在线观看免费高清视频97| 色琪琪综合男人的天堂aⅴ视频| 久久久视频免费观看| 一区二区三区回区在观看免费视频| 亚洲精品www久久久| 欧美肥臀大乳一区二区免费视频| 欧美与黑人午夜性猛交久久久| 久久久久久国产免费| 欧美日韩性视频| 草民午夜欧美限制a级福利片| 国产一区二区视频在线观看| 日韩精品中文字幕在线观看| 亚洲一区免费网站| 久久国产精品99国产精| 久久韩国免费视频| 亚洲老板91色精品久久| 成人免费淫片视频软件| 琪琪第一精品导航| 亚洲成人激情图| 欧美日韩人人澡狠狠躁视频| 成人免费视频xnxx.com| 成人国内精品久久久久一区| 亚洲美女喷白浆| 成人久久一区二区三区| 亚洲毛片在线观看| 国产精品久久激情| 热re91久久精品国99热蜜臀| 中文字幕久久亚洲| 亚洲欧美一区二区三区四区| 中文字幕成人精品久久不卡| 欧美一区二区大胆人体摄影专业网站| 日韩欧美中文免费| 国产精品天天狠天天看| 久久久在线观看| 国产精品美女免费看| 精品呦交小u女在线| 国产精品久久久久高潮| 久久这里有精品| 亚洲伦理中文字幕| 国产精品久久久久999| 久久久久久久久久久网站| 国产日韩专区在线| 91精品啪在线观看麻豆免费| 欧美性猛交xxxx乱大交蜜桃| 日韩视频免费看| 亚洲欧美在线免费| 亚洲成人免费网站| 欧美视频在线免费看| 亚洲精品大尺度| 亚洲在线观看视频网站| 午夜美女久久久久爽久久| 欧美综合国产精品久久丁香| 国产精品一区二区久久久久| 欧美激情精品久久久久久久变态| 亚洲欧美福利视频| 欧美另类老肥妇| 在线亚洲国产精品网| 久久成人av网站| 欧美激情视频在线免费观看 欧美视频免费一| 欧美日韩成人在线观看| 视频一区视频二区国产精品| 一区二区国产精品视频| 不用播放器成人网| 欧美电影免费观看| 秋霞午夜一区二区| 久久久亚洲精选| 日本电影亚洲天堂| 欧美日韩国产精品| 亚洲欧美色图片| 中文字幕亚洲综合久久| www.日本久久久久com.| 国产999视频| 成人网欧美在线视频| 日韩高清电影好看的电视剧电影| 国内精品模特av私拍在线观看| 91在线免费视频| 91精品久久久久久久久中文字幕| 精品欧美aⅴ在线网站| 91九色精品视频| 欧美在线视频免费| 色七七影院综合| 在线观看亚洲区| 92裸体在线视频网站| 亚洲欧美国产日韩中文字幕| 久久综合免费视频影院| 色av吧综合网| 欧美在线播放视频| 欧美激情视频三区| 国产丝袜一区二区三区免费视频| 成人黄色免费看| 免费97视频在线精品国自产拍| 欧美国产中文字幕| 国产欧美韩国高清| 亚洲国产成人在线播放| 午夜精品视频网站| 日韩电影免费在线观看| 性色av一区二区三区| 日韩欧美精品网址| 国产精品成久久久久三级| 国产伦精品免费视频| 日韩av在线免费观看| 亚洲午夜女主播在线直播| 欧美成人中文字幕| 色综合天天综合网国产成人网| 亚洲精品自拍偷拍| 一个色综合导航| 91精品国产色综合| 亚洲91精品在线| 国产午夜精品理论片a级探花| 日本精品va在线观看| 91av网站在线播放| 久久亚洲私人国产精品va| 成人亚洲欧美一区二区三区| 日韩精品免费在线观看| 色综合天天综合网国产成人网| 9.1国产丝袜在线观看| 欧美三级欧美成人高清www| 中文字幕日韩欧美精品在线观看| 欧美日韩一区二区在线播放| 96国产粉嫩美女| 2019中文在线观看| 日韩三级影视基地| 久久久久久久网站| 久久99精品国产99久久6尤物| 欧美性猛交xxxx免费看| 成人网页在线免费观看| 欧美成人激情在线| 国产精品免费视频xxxx| 欧美情侣性视频| 成人免费淫片视频软件| 狠狠躁夜夜躁人人爽天天天天97| 亚洲精品视频在线观看视频| 久久免费精品日本久久中文字幕| 日韩最新av在线| 国产亚洲欧洲高清| 人人爽久久涩噜噜噜网站| 欧美在线www| 91亚洲国产精品| 国产精品久久久久福利| 欧美专区国产专区| 久久久久久高潮国产精品视| 91免费观看网站| 欧美成人在线免费| 久久精品国产2020观看福利| 亚洲欧美国产一本综合首页| 久久综合久中文字幕青草| 米奇精品一区二区三区在线观看| 日韩国产精品视频| xvideos亚洲人网站| 91人成网站www| 国产精品第一第二| 久久中文字幕视频| 亚洲精品国产精品久久清纯直播| 成人国产精品一区二区| 亚州国产精品久久久| 久久精品国产亚洲精品2020| 成人精品久久久| 日韩av电影手机在线| 精品一区二区亚洲| 久久亚洲电影天堂| 久久久久久久爱| 久久韩剧网电视剧| 日本成人在线视频网址|