精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用Swing制作精美的圖層疊加圖

開發 后端
前段時間,看著不少人用twaver的Swing在寫東西,比如我們武林中的Swing 刀客 和 Swing劍客(注三號管家chart圖的模仿),都用到了寫出了很漂亮的swing界面。下面我要分享的是用swing編寫的圖層疊加效果圖,其中也用到了twaver的一些功能。

前段時間,看著不少人用twaver的Swing在寫東西,比如我們武林中的Swing 刀客  和 Swing劍客(注三號管家chart圖的模仿),都用到了寫出了很漂亮的swing界面。下面我要分享的是用swing編寫的圖層疊加效果圖,其中也用到了twaver的一些功能。(在此僅僅是為了分享給大家比較美的界面,希望能在這酷暑之際為大家帶來一絲涼意或美的享受就心滿意足了)。

在TWaver的各個使用手冊,文檔或Demo中我們可以看到,twaver提供了Layer的概念,就是圖層,這與一些制圖軟件也有幾分相似。在實際應用中也是比較的多。比如TWaver的水印、背景效果都是通過圖層來疊加的。

下面我們就來看看這個精美的圖層疊加圖到底美在何處,先上最終效果圖:

 這是一個使用TWaver Java制作的自動布局的例子,有人能看得出這里使用了多少個圖層合并而成的嗎?
呵呵,我們先來看看整體的一個布局:首先frame中添加了一個LayeroutPanel,panel中放了一個network,network中間部分是用于存放網元,連線,右半部分是scrollPanel。

一、Network的疊加

我們先來看看中間這個network的圖層是如何疊加的

1.陰影層

首先是在network的Cushion上添加了一個網元陰影層,cushion在TWaver的定義中是處于所有圖層之下的一層。

  1. network.addCanvasCushion(new ShadowCushion(this)); 

 

陰影也可以這樣添加。

2.網元層 

在默認圖層上添加布局的網元 

  1. this.cloud = this.createNode("/demo/layout/images/cloud.png");  
  2.  this.center1 = this.createNode("/demo/layout/images/center.png");  
  3.  this.center2 = this.createNode("/demo/layout/images/center.png");  
  4.  this.gather1 = this.createNode("/demo/layout/images/gather.png");  
  5.  this.gather2 = this.createNode("/demo/layout/images/gather.png");  
  6.  this.router1 = this.createNode("/demo/layout/images/router1.png"0"Router 1");  
  7.  this.router2 = this.createNode("/demo/layout/images/router2.png"1"Router 2");  
  8.  this.server1 = this.createNode("/demo/layout/images/pc.png"2"Spring Layout");  
  9.  this.server2 = this.createNode("/demo/layout/images/pc.png"3"Office Network");  
  10.  this.server3 = this.createNode("/demo/layout/images/pc.png"4"US Map");  
  11.  this.client1 = this.createNode("/demo/layout/images/pc.png"5"Bar Chart");  
  12.  this.client2 = this.createNode("/demo/layout/images/pc.png"6"Tag Cloud");  
  13.  this.client3 = this.createNode("/demo/layout/images/pc.png"7"Bus Layout");  
  14.  this.createLink(gather1, client1);  
  15.  this.createLink(gather1, client2);  
  16.  this.createLink(gather1, client3);  
  17.  this.createLink(gather2, server1);  
  18.  this.createLink(gather2, server2);  
  19.  this.createLink(gather2, server3);  
  20.  this.createLink(cloud, center1);  
  21.  this.createLink(cloud, center2);  
  22.  this.createLink(router1, center1);  
  23.  this.createLink(router2, center2);  
  24.  this.createLink(router1, gather1);  
  25.  this.createLink(router2, gather2); 

TWaver提供了多種布局的效果,這是一個左樹形布局,下面的toolbar上提供了更多的布局方式。

3.背景層 

設置network背景圖片,背景層也是處于所有數據層之下的一層,但是在cushion層之上 

  1. this.setImageBackground("/demo/layout/images/bottom.png"); 
 

 

 4.頂層 

添加top的圖層節點,并設置圖層為1 

  1. this.top = this.createNode("/demo/layout/images/top.png");  
  2.  this.top.setLayerID("top");  
  3.  Layer topLayer = new Layer("top");  
  4.  topLayer.setMovable(false);  
  5.  topLayer.setSelectable(false);  
  6.  this.getDataBox().getLayerModel().addLayer(1, topLayer); 

使用一個Node最為最上層的圖片,哈哈,這也是TWaver中的一個使用技巧。

5.工具條層 

添加toolbar圖層并設置為1,這樣toolbar的圖層會在top層之上

  1. this.toolbar = this.createNode("/demo/layout/images/toolbar.png");  
  2.  this.toolbar.setLocation(2168);  
  3.  this.toolbar.setLayerID("toolbar");  
  4.  Layer toolbarLayer = new Layer("toolbar");  
  5.  toolbarLayer.setMovable(false);  
  6.  toolbarLayer.setSelectable(false);  
  7.  this.getDataBox().getLayerModel().addLayer(1, toolbarLayer); 

工具條也是一張圖片哦,哈哈,沒想到吧! 

工具條的動畫效果

從上面分解中可以看出,工具條是疊加在top層之上的,這其中還有一個動畫的效果,當鼠標移動到工具條所有的區域范圍時,才會出現,移出并會隱藏。 

  1. this.getCanvas().addMouseMotionListener(new MouseMotionAdapter() {  
  2.      public void mouseMoved(MouseEvent e) {  
  3.          if(isAdjustingToolbar){  
  4.              return;  
  5.          }  
  6.          if(toolbarBounds.contains(e.getPoint())){  
  7.              if(!toolbar.isVisible()){  
  8.                  isAdjustingToolbar = true;  
  9.                  toolbar.setVisible(true);  
  10.                  TWaverUtil.animateMove(toolbar, toolbar.getWidth(), 0new Runnable(){  
  11.                      public void run() {  
  12.                          isAdjustingToolbar = false;  
  13.                      }  
  14.                  });  
  15.              }  
  16.          }else{  
  17.              if(toolbar.isVisible()){  
  18.                  isAdjustingToolbar = true;  
  19.                  TWaverUtil.animateMove(toolbar, -toolbar.getWidth(), 0new Runnable(){  
  20.                      public void run() {  
  21.                          toolbar.setVisible(false);  
  22.                          isAdjustingToolbar = false;  
  23.                      }  
  24.                  });  
  25.              }  
  26.          }  
  27.      }  
  28.  }); 

 

6.最終合并效果最后twaver根據添加的這些圖層順序,就會在network上疊加出一個左半部分的效果,如下: 

二.    ScrollPanel的疊加

看完network中間部分的疊加效果,我們再來看看這張圖的右半部分scrollerPanel是如何疊加的

1. 組件層

這是最重要的放置內容面板的一層,里面放置了24個獨立的組件。通過設置邊框的范圍讓其只顯示中間部分,每個獨立的組件都可以單獨操作:選中,移動,染色,tooltip…都可以呈現。

  1. for(int i=0; i<24; i++){  
  2.  JComponent component = null;  
  3.  int index = i % 8;  
  4.  if(index == 0){  
  5.         component = new Router1();  
  6.  }  
  7.  ... ...  
  8.  if(component != null){  
  9.          component.setPreferredSize(CARDSIZE);  
  10.          component.setMaximumSize(CARDSIZE);  
  11.          component.setMinimumSize(CARDSIZE);  
  12.          component.setBounds(XGAP, i*CARDSIZE.height+YGAP, CARDSIZE.width-XGAP*2, CARDSIZE.height-YGAP*2);  
  13.          this.add(component);  
  14.      }  
  15.    
  16.  } 

 

 

2.相框層

這是一個給每個組件設置相框的一個圖層,首先我們需要相框圖片

  1. Rectangle rect = new Rectangle(0, i*CARDSIZE.height, CARDSIZE.width, CARDSIZE.height);  
  2.              if(i != (this.currentIndex + 8)){  
  3.                  g2.drawImage(CARDIMAGE, rect.x, rect.y, rect.width, rect.height, null);  
  4.              }else{  
  5.                  rect.grow(-XGAP+4, -YGAP+4);  
  6.                  g2.setColor(Color.white);  
  7.                  g2.setStroke(TWaverConst.BASIC_STROKE);  
  8.    
  9.                  int d = 8;  
  10.                  g2.drawLine(rect.x, rect.y, rect.x+d*2, rect.y);  
  11.                  g2.drawLine(rect.x, rect.y, rect.x, rect.y+d);  
  12.    
  13.                  g2.drawLine(rect.x+rect.width, rect.y+rect.height, rect.x+rect.width-d*2, rect.y+rect.height);  
  14.                  g2.drawLine(rect.x+rect.width, rect.y+rect.height, rect.x+rect.width, rect.y+rect.height-d);  
  15.              } 

 

3.蒙版層

這是最上邊的類似于蒙版的一層,通過兩張上下透明的圖片將其放置在scrollerPane的最上邊一層

  1. if(top){  
  2.      image = TWaverUtil.getImageIcon("/demo/layout/images/mist1.png");  
  3.  }else{  
  4.      image = TWaverUtil.getImageIcon("/demo/layout/images/mist2.png");  
  5.  }  
  6.  JComponent canvas = new JComponent(){  
  7.      public void paintComponent(Graphics g) {  
  8.      super.paintComponent(g);  
  9.          g.drawImage(image.getImage(), 00, image.getIconWidth(), image.getIconHeight(), null);  
  10.      }  
  11.  }; 

蒙版層上也是有動畫效果的,當鼠標點擊上或下的蒙版,組件面板會自動上移或下移一個

4.最終疊加效果

這樣兩張圖片一疊加就可以得到我們最開始提供的那種圖了。

是不是有點像用PS軟件在畫圖,呵呵,對了,這就是twaver swing中圖層的作用。

PS:附上源Demo代碼供大家學習分享:TopoDemo

 

原文鏈接:http://www.cnblogs.com/twaver/archive/2011/07/29/2120877.html

  1. 簡述Java圖形用戶界面設計(Swing)
  2. Effective Java 創建和銷毀對象
  3. Java編碼及網絡傳輸中的編碼問題
  4. 探討:Java中刪除數組中重復元素
  5. 用Java GUI編寫的畫板程序
責任編輯:林師授 來源: twaver的博客
相關推薦

2010-04-20 13:45:00

WPS表格

2012-09-25 09:09:51

JSjQuery素材

2012-09-19 14:18:32

素材Web開發

2012-02-24 15:28:36

ibmdw

2009-11-27 14:25:57

VS2003模板

2020-05-19 17:26:21

Python俄羅斯方塊游戲開發

2011-04-07 08:55:23

WebUI素材

2017-02-13 16:47:13

iOSDSL開發

2025-04-07 00:00:00

OpenAIGPT-4o圖像

2009-07-15 09:06:07

BeanTableMoSwing

2009-12-02 11:37:36

思科無線路由器

2022-03-09 12:45:15

時間線

2011-11-03 10:11:37

HTML 5

2011-06-28 09:03:14

MeeGoN9諾基亞

2009-07-16 11:02:33

Swing文件選擇器

2009-07-14 18:28:58

Swing入門

2018-03-21 18:00:15

NestJS

2009-06-29 15:28:00

TableModelSwing開發

2023-08-02 20:04:47

2020-12-31 10:29:05

數據可視化可視化工具編碼
點贊
收藏

51CTO技術棧公眾號

国产精品99久久久久| 夜间精品视频| 欧美日韩第一区日日骚| 日韩一级特黄毛片| 人成在线免费视频| 精品亚洲aⅴ乱码一区二区三区| 蜜月aⅴ免费一区二区三区| 日韩www视频| 日韩福利影视| 岛国视频午夜一区免费在线观看| 亚洲一区精彩视频| 四虎精品在永久在线观看| 男人的j进女人的j一区| 欧美激情视频网站| 免费观看a级片| 国产成人高清精品免费5388| 欧美日韩亚洲综合| 免费看日本毛片| 免费网站成人| 久久久久久9999| 国产精品免费视频一区二区| 亚洲在线观看av| 国产欧美成人| 久久69精品久久久久久久电影好| 免费黄色片网站| 欧美freesex8一10精品| 欧美一区二区三区的| 99视频免费播放| 国产剧情av在线播放| 亚洲视频一区在线| 色阁综合av| 欧美日韩伦理片| 成人av在线电影| 92福利视频午夜1000合集在线观看| 伊人久久久久久久久久久久| 亚洲午夜91| 九九精品在线观看| 国产精品国产三级国产传播| 日韩欧美1区| 亚洲精品电影在线| 国产调教打屁股xxxx网站| 亚洲青青一区| 欧美日韩亚洲综合在线| 五月天婷婷激情视频| xxxxx性欧美特大| 精品久久久久久| 国产美女主播在线播放| 丰满诱人av在线播放| 亚洲精品精品亚洲| 中文字幕第一页亚洲| 一级日本在线| 欧美国产丝袜视频| 婷婷五月色综合| yiren22亚洲综合伊人22| 久久久av毛片精品| 欧美一区视久久| 国产三级在线免费| 国产亚洲美州欧州综合国| 欧美一区三区二区在线观看| 男操女在线观看| 久久九九国产精品| 亚洲国产成人不卡| 国产精品扒开做爽爽爽的视频| 综合av第一页| 亚洲精品天堂成人片av在线播放| 在线观看免费视频你懂的| 一区二区久久久| 18禁免费观看网站| 日本电影欧美片| 欧美日韩国产乱码电影| 亚洲自拍第三页| 97久久综合区小说区图片区| 亚洲国产精品系列| 国产高清一区二区三区四区| 日韩精品欧美激情一区二区| 欧美成人在线免费| 国产成人无码精品| 天堂久久一区二区三区| 成人在线视频网| 亚洲av无码国产精品永久一区 | 日本三级韩国三级久久| 亚洲成熟少妇视频在线观看| 久久国产精品免费| 97碰碰视频| 婷婷国产在线| 国产精品区一区二区三| 97在线免费视频观看| 国产传媒av在线| 欧美视频一区在线| 免费黄色在线播放| 九九免费精品视频在线观看| 久久精品福利视频| 丁香六月婷婷综合| 国产又粗又猛又爽又黄91精品| 国产精品三区在线| av资源种子在线观看| 亚洲最大的成人av| 欧美伦理视频在线观看| 亚洲一区二区三区中文字幕在线观看 | 国产精品每日更新| 欧美精品自拍视频| 玖玖精品在线| 日韩精品欧美激情| 国产精品白丝喷水在线观看| 香蕉久久a毛片| 亚洲free性xxxx护士hd| 可以在线观看的av网站| 亚洲综合图片区| 中文字幕 91| 激情亚洲另类图片区小说区| 日韩有码在线播放| 欧美在线观看不卡| 国产成人一区在线| 亚洲日本理论电影| 最近在线中文字幕| 欧美xxxx老人做受| 精品在线观看一区| 丝袜美腿一区二区三区| 国产一区免费在线| 在线中文字幕-区二区三区四区| 欧美在线视频不卡| 亚洲欧美色图视频| 影音先锋在线一区| 99国产在线观看| 国产福利在线播放麻豆| 在线观看成人免费视频| 亚洲专区区免费| 亚洲国产免费看| 97操在线视频| 麻豆传媒在线免费看| 欧美午夜片在线观看| 91精品人妻一区二区| 99热这里只有精品8| 国产高清自拍一区| 手机av免费在线| 欧美一级片在线观看| 国产精品精品软件男同| 美女视频网站黄色亚洲| 欧美一区二区视频17c | 成人黄色免费看| 在线播放毛片| 欧美日韩亚洲丝袜制服| 五月婷婷婷婷婷| 免费在线欧美视频| 亚洲精品国产精品国自产观看| 国产精品高清乱码在线观看| 亚洲免费av网址| 中文字幕免费观看| 国产人成一区二区三区影院| 999在线免费视频| 成人精品影院| 国产美女久久久| 欧美r级在线| 欧美一区二区三区色| 国产极品国产极品| 成人免费视频网站在线观看| 成人性免费视频| 日韩极品少妇| 国产精品成人aaaaa网站| 风间由美一区| 91精品在线一区二区| 欧美日韩一级在线观看| 成人午夜私人影院| 国产欧美高清在线| 精品视频国产| 亚洲综合最新在线| 日韩精品黄色| 日韩激情一区二区| 日韩av大全| 91超碰碰碰碰久久久久久综合| 亚洲欧美精品一区二区| 国产伦精品一区二区三区视频我 | 99999精品| 午夜久久影院| 国产麻豆日韩| 国产精品粉嫩| www.亚洲男人天堂| www.狠狠干| 日韩欧美在线字幕| 国产黄色录像片| 成人av网在线| 婷婷免费在线观看| 欧美私人啪啪vps| 免费看污久久久| 婷婷成人av| 97久久精品视频| 大胆av不用播放器在线播放| 日韩一区二区视频| 国产一级18片视频| 中文字幕一区二区三区不卡| 国产一线在线观看| 日本午夜一区二区| 成人小视频在线观看免费| 日韩有码av| 91在线无精精品一区二区| 草美女在线观看| 国产性色av一区二区| 精品欧美在线观看| 色av综合在线| 男女免费视频网站| 国产精品区一区二区三| 91丝袜在线观看| 激情成人综合网| 狠狠爱免费视频| 一区二区蜜桃| 少妇免费毛片久久久久久久久| 人人九九精品视频| 国产精品99蜜臀久久不卡二区| 色呦呦在线免费观看| 中文字幕免费国产精品| 深爱激情五月婷婷| 日韩午夜激情免费电影| 无码视频在线观看| 亚洲午夜精品网| 黄视频网站免费看| 欧美国产综合一区二区| 久久久无码人妻精品一区| 粉嫩av一区二区三区| 日本美女视频一区| 肉色丝袜一区二区| 免费成人午夜视频| 欧美激情第10页| 黄频视频在线观看| 国产一区二区观看| 欧美大香线蕉线伊人久久国产精品 | 后入内射欧美99二区视频| 精品视频在线免费看| 亚洲免费黄色网址| 亚洲aⅴ怡春院| 精品无码一区二区三区电影桃花 | 国产一区一区三区| 手机亚洲手机国产手机日韩| 欧美日韩综合另类| 丝袜连裤袜欧美激情日韩| 成人看片在线| 欧一区二区三区| 成人国产精品一区二区| 日韩久久一区| 国产精品自产拍在线观看中文| 欧美二三四区| 国产成人精品999| 精品欧美一区二区三区在线观看| 欧美在线中文字幕| 九色porny视频在线观看| 韩国国内大量揄拍精品视频| missav|免费高清av在线看| 欧美国产日韩一区二区三区| 天堂av在线电影| 色综合久久久久久中文网| 伊人在我在线看导航| 欧美尺度大的性做爰视频| 97影院秋霞午夜在线观看| 久久999免费视频| 波多野结衣在线观看| 91国产一区在线| 少妇视频一区| 国产精品91久久久久久| 黄色日韩网站| 亚洲一区二区三区成人在线视频精品 | 你懂得网站在线| 在线不卡国产精品| 欧美人xxx| 欧美高清视频在线播放| heyzo在线欧美播放| 欧美在线视频导航| 欧美日韩女优| 91精品视频观看| 69精品国产久热在线观看| 国产亚洲欧美一区二区| 国产精品一区二区av交换| 亚洲精品视频一二三| 亚洲a在线视频| www.国产在线播放| 男人天堂欧美日韩| 在线免费观看av的网站| 国产最新精品精品你懂的| 日本少妇xxx| 97精品电影院| 波多野结衣欲乱| 亚洲高清免费观看高清完整版在线观看| 黄色激情视频在线观看| 在线观看欧美黄色| 国产av无码专区亚洲av| 日韩激情在线视频| 日韩美女网站| 91超碰caoporn97人人| 99久久亚洲国产日韩美女| 99热在线国产| 精品国产aⅴ| 久久亚洲精品无码va白人极品| 丝袜亚洲精品中文字幕一区| 亚洲国产午夜精品| 久久久午夜精品| 91aaa在线观看| 在线观看网站黄不卡| www.com欧美| 一本色道久久88亚洲综合88| 欧美人与性动交α欧美精品图片| 国产97免费视| 国产精品极品国产中出| 亚洲成人自拍视频| 亚洲激情网址| 一级黄色免费毛片| 日本一区二区三区在线观看| 国产在线视频在线观看| 欧美日韩成人高清| 神马久久精品| 欧美激情亚洲一区| 欧美视频在线视频精品| 乱色588欧美| 狠狠爱综合网| 国内自拍第二页| 欧美经典一区二区| 国产91精品一区| 精品久久一区二区| 欧美成年黄网站色视频| 国产精品成人av性教育| 日韩av系列| 青草网在线观看| 国产一区二区看久久| 天天操天天舔天天射| 欧美日韩国产在线播放| 亚洲av永久纯肉无码精品动漫| 最近更新的2019中文字幕| 在线人成日本视频| 精品999在线观看| 激情婷婷亚洲| xxxxwww一片| 亚洲黄一区二区三区| 一本色道久久综合亚洲| 一夜七次郎国产精品亚洲| 免费看av不卡| 欧美日韩在线精品一区二区三区| 亚洲国产片色| 免费的av网站| 午夜免费久久看| 色网站免费观看| 国模吧一区二区| 久久精品色综合| 一区二区传媒有限公司| 99精品在线免费| 国产五月天婷婷| 日韩激情在线视频| 高清不卡亚洲| 亚洲欧洲国产日韩精品| 麻豆成人综合网| 三上悠亚在线观看视频| 88在线观看91蜜桃国自产| 日本高清在线观看wwwww色| 国产精品亚洲片夜色在线| 成人在线一区| 亚洲第一色av| 夜夜精品视频一区二区| 亚洲国产视频一区二区三区| 国语自产精品视频在免费| 国产成人高清精品免费5388| 国产精品无码av在线播放| 久久久影院官网| 中文文字幕一区二区三三| 色偷偷888欧美精品久久久| 激情中国色综合| 国风产精品一区二区| aaa国产一区| 69xxxx国产| 日韩中文在线视频| 精品视频国内| 国产高清av在线播放| 久久综合色一综合色88| 一区二区视频网| 欧美激情第6页| 蜜臀av免费一区二区三区| 九九热在线免费| 亚洲精品免费在线播放| 色综合久久久久久| 国产精品福利观看| 一区二区三区在线电影| 国产十八熟妇av成人一区| 色综合 综合色| 免费a级人成a大片在线观看| 国产精品12| 日本在线不卡一区| 麻豆疯狂做受xxxx高潮视频| 精品亚洲一区二区三区四区五区| 日韩精品三区| 国产真人做爰毛片视频直播| 久久精品亚洲国产奇米99| 99精品免费观看| 97久久精品视频| 婷婷成人基地| 97人妻精品一区二区三区免 | 日本一区二区不卡| 91影院成人| www.超碰97| 9191成人精品久久| jizz内谢中国亚洲jizz| 欧美 国产 精品| 久久久精品2019中文字幕之3| 精品乱子伦一区二区| 国产精品久久久久999| 一区在线视频观看|