麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

如何加載并顯示較大的圖形文件?

2019-11-18 13:24:28
字體:
來源:轉載
供稿:網友

   在The Java Tutorial -> Creating a GUI with JFC/Swing中,我們看到加載并在一
   個Graphics對象上顯示一個圖形文件的步驟如下:
  
   Toolkit toolkit = Toolkit.getDefaultToolkit();
   Image image1 = toolkit.getImage("imageFile.gif");
   g.drawImage(myImage, 0, 0, this);
  
   當你所需要顯示的圖形文件不大的時候,這樣的做法似乎沒有什么問題。但是,當你
   第一次顯示一幅很大的圖形時,是不是看見你的圖形界面閃爍了好久才顯示出圖形來
   呢?很郁悶是吧?java 2D Graphics不是缺省的是用雙緩沖技術么?為什么還會出現
   這種閃爍呢?
  
   造成這種現象的原因是:Image 對象的家載是通過一個線程來進行的,當虛擬機剛剛
   執行完toolkit.getImage()語句的時候,新創建的Image 對象實際上還在不斷的更新
   之中,假如這時候調用g.drawImage()來顯示該圖形,那么該Image對象每更新一次,
   系統就將該圖形重新畫一次,這就是為什么圖形界面會出現閃爍的原因。
  
   那么,我先做點別的事情,然后再來顯示這個圖形,總該可以了吧。試試下面這一段
   程序怎么樣?
  
   Toolkit toolkit = Toolkit.getDefaultToolkit();
   Image image1 = toolkit.getImage("imageFile.gif");
   {
   // Do something for 10 seconds
   }
   g.drawImage(myImage, 0, 0, this);
  
   呵呵,似乎效果還是不行耶。即使是你在那里灌水灌到被封全站3 個月,這個討厭的
   閃爍還是在哪里。原因很簡單,負責加載圖形的是一個低優先權線程,你在那里占用
   著CPU 時間,它怎么可能會干活呢?你在那里覺覺10秒鐘Thread.sleep()試試看,是
   不是乖好多了呢?
  
   很顯然,我們不能夠每加載一個圖形文件就在那里覺覺10秒鐘,不然的話飯碗早就丟
   掉了。我們需要做的,是等待圖像加載完成,這個加載一完成就得馬上開始干活。因
   此,我們需要一個waitForImage()方法。一個可用的waitForImage()方法如下,其中
   的Component可以是你的JFrame對象,把你的覺覺10秒鐘換成waitForImage() 就可以
   向老板請求加薪啦。
  
   public static boolean waitForImage(Image image, Component c)
   {
   MediaTracker tracker = new MediaTrracker(c);
   tracker.addImage(image, 0);
   try
   {
   tracker.waitForAll();
   } catch(InterruptedException e) {}
   return (!tracker.isErrorAny());
   }
  
   假如你愿意使用最少的代碼實現還算不賴的效果,那么下面的代碼斷也可以滿足你的
   要求。至于這里面的原因嘛,偶現在打字比較慢,你自己好好想想吧。
  
   Toolkit toolkit = Toolkit.getDefaultToolkit();
   Image image1 = toolkit.getImage("imageFile.gif");
   JLabel NullLabel = new JLabel(new ImageIcon(image1));
   g.drawImage(myImage, 0, 0, this);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人福利网 | 91成人免费版 | 国产亚洲精品久久久久5区 日韩一级片一区二区三区 国产精品久久久久av | 国产精品区在线12p 午夜视频色 | 亚洲视频精选 | 国产女同疯狂激烈互摸 | 国产精品成人一区二区三区电影毛片 | 福利在线国产 | 一级视频网站 | 久久久成人精品视频 | 色诱亚洲精品久久久久久 | 欧美精品一区二区久久久 | 精品国产一区二区三区成人影院 | 久久人人爽人人爽人人片av免费 | 污污的视频在线观看 | 精品一区二区亚洲 | 成年人免费黄色片 | 成av人在线观看 | 欧美成人精品h版在线观看 久久久久久三区 | 91aa.app| 伊人99在线 | 亚洲午夜国产 | 色综合激情 | 欧美性激情视频 | 爱福利视频网 | 久久久久久久久久久av | 舌头伸进添的我好爽高潮网站 | 偿还电影免费看 | 免费观看视频在线观看 | 在线免费观看精品 | 国产69精品久久久久久 | 一区二区久久精品66国产精品 | 欧美77| 久久国产精品二国产精品 | 男女生羞羞视频网站在线观看 | 久久久久亚洲精品国产 | 国产免费一区二区三区最新不卡 | 久久久久久久久久亚洲 | 欧美视频黄色 | 成人观看网站 | xxxxxx性|