成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析Swing Image的轉換

開發 后端
本文介紹Swing Image轉換當然可能很少會用到,不過了解一下也是沒有壞處的。我們想做一個類型于Windows的explorer的一個文件樹來顯示文件。

我覺得這種Swing Image轉換當然可能很少會用到,不過了解一下也是沒有壞處的。

例如,我們想做一個類型于Windows的explorer的一個文件樹來顯示文件,希望每個樹結點的圖標和在explorer里看到的一樣。到現在為此我不知道怎么用SWT去得到每個文件或文件夾的顯示圖標。因此我要借助SWing來完成。

首先,我們需要得到一個對應于文件(夾)圖標的Swing Image對象。如下:

  1. java.awt.Image icon = ShellFolder.getShellFolder(file).getIcon(true);   

接下來就是要從這個Swing Image開始做轉換。顯示不能直接把這個icon轉換成SWT的一個Image對象。所以我們需要先把這個icon變成字節流,假如我們希望轉換后圖標的大小是16*16。那么,可以如下做:

  1. int width = 16;    
  2. int height = 16;    
  3. BufferedImage b = new BufferedImage(width, height,    
  4. BufferedImage.TYPE_INT_RGB);    
  5. Graphics graphics = b.getGraphics();    
  6. graphics.drawImage(icon, 0, 0, width, height, null);    
  7. ByteArrayOutputStream baos = new ByteArrayOutputStream();    
  8. ImageIO.write(b, "png", baos);   

先轉成一個BufferedImage,然后把這個BufferedImage存入一個字符數組轉出流。最后只要從這個輸出流中得到字節數組就可以:

  1. byte[] by = baos.toByteArray();  

這樣就得到了這個Swing圖標對應的一個字節數組。

要從一個字節數組得到對應的一個SWT的圖標就比較簡單了,我們可以先用這個數組構造出一個ImageData對象,如下:

  1. ImageData data = new ImageData(new ByteArrayInputStream(by));    
  2. for (int i = 0; i < width; i++) {    
  3. for (int j = 0; j < height; j++) {    
  4. if (data.getPixel(i, j) == 0) {    
  5. data.setPixel(i, j, 0xffffff);    
  6. }    
  7. }    
  8. }   

這里有一點要注意:在沒有圖元點的地方,默認會顯示一個黑點,我把顯示黑點的地方都用一個白點做了替換。最后,根據這個data構造出對應的Image,如下:

  1. image = new Image(Display.getDefault(), data); 

【編輯推薦】

  1. Swing應用程序處理函數
  2. 淺談SwingWorker的使用
  3. AWT,SWT和Swing的布局管理器與Look And Feel機制
  4. 概述SWT采用AWT和Swing的一些優點
  5. Swing組件的paint方法的處理流程
責任編輯:佚名 來源: 人民郵電出版社
相關推薦

2009-07-15 11:02:32

Swing組件

2009-07-10 10:37:50

Swing Set示例

2009-07-15 10:06:54

Swing實現MDI

2009-07-16 09:54:44

LookupEventSwing線程

2009-07-10 14:20:01

AcceleratorJava Swing

2009-07-15 16:03:26

Swing線程

2009-07-17 16:41:48

actionPerfoSwing

2009-07-16 17:01:09

Swing字符串

2009-07-15 16:50:07

Swing項目

2009-07-15 13:46:26

Swing體系結構

2009-07-15 17:33:08

Swing客戶端

2012-01-17 17:21:24

JavaSwing

2009-07-14 14:00:47

iData技術

2009-07-10 17:24:07

Swing應用程序

2009-07-14 15:12:36

SwingSWT和AWT

2009-08-26 15:04:35

C#轉換

2009-09-11 12:41:41

C#類型轉換

2009-07-15 15:35:59

Swing程序Swing性能

2009-02-25 09:52:14

類型轉換.NET 強制轉型

2009-08-04 14:56:34

ASP.NET數據類型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕 国产精品 | 久草免费在线视频 | 久久免费精品视频 | 99在线播放| 国产91久久久久 | 国产精品成人一区 | 青青草这里只有精品 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 色男人天堂av | 69av在线视频 | 亚洲一区二区在线 | 九九综合九九 | 国产精品久久国产精品 | 中文字幕免费视频 | 亚洲超碰在线观看 | 男人的天堂中文字幕 | 很黄很污的网站 | 日韩一区二区三区视频 | 精品国产青草久久久久96 | 国产成人高清视频 | 视频一区中文字幕 | 永久免费在线观看 | 亚洲午夜精品在线观看 | 成人国产网站 | 免费激情| 在线看av网址 | 在线一区二区国产 | 日韩欧美成人精品 | 久久久久亚洲视频 | 日产久久| 在线成人| 一区二区三区免费 | 日本一二三区高清 | 成人在线观看免费观看 | 91精品国产综合久久婷婷香蕉 | 国产视频一区二区 | 久草视频在 | 精品久久久久久久久久久久久久 | 日韩中文在线视频 | 91色啪| 亚洲精品乱码久久久久久按摩观 |