精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

好吊色在线视频| 午夜一级免费视频| 国产福利电影在线| 免费人成精品欧美精品| 久久亚洲国产精品| 艳妇乳肉豪妇荡乳xxx| 日韩美女在线看免费观看| 国产精品福利影院| 国产欧美日韩伦理| 国产亚洲久一区二区| 欧美日韩a区| 国产亚洲精品高潮| 蜜臀aⅴ国产精品久久久国产老师| 9i看片成人免费高清| 亚洲欧美日韩中文字幕一区二区三区| 国产伦理一区二区三区| 中文字幕网址在线| 国产亚洲毛片在线| 精品自拍视频在线观看| 亚洲精品乱码久久久久久久久久久久| 精品国产亚洲一区二区三区在线| 精品国产31久久久久久| 国产欧美自拍视频| 国产乱视频在线观看| 成人av免费网站| 成人免费在线网址| 午夜一级黄色片| 亚洲国内欧美| 欧美黑人极品猛少妇色xxxxx| 国产传媒在线看| 色婷婷狠狠五月综合天色拍| 欧美一级理论片| 91在线视频观看免费| a毛片不卡免费看片| 亚洲欧美另类图片小说| 久久精品人成| 亚洲免费一级片| 国内成+人亚洲+欧美+综合在线| 国产精品va在线播放| 日韩精品成人在线| 国产专区一区| 久久精品视频在线| 亚洲av无一区二区三区| 波多野结衣在线观看一区二区三区| 亚洲精品成人av| 欧美夫妇交换xxx| 国产精品高潮呻吟久久久久| 日韩免费看网站| 原创真实夫妻啪啪av| www.久久爱.com| 欧美精品在线一区二区三区| 艹b视频在线观看| av成人在线看| 欧美日韩久久一区二区| 亚洲这里只有精品| 欧美xxxx性| 欧美日韩精品一区二区三区四区| 国产精品入口免费软件| 欧美日韩五码| 欧美日韩激情在线| 亚洲免费黄色录像| 免费看日产一区二区三区| 欧美一区二区三区免费观看视频| 九九九久久久久久久| 一区二区三区在线资源| 精品国产一二三区| 欧美双性人妖o0| 蜜桃精品wwwmitaows| 在线成人免费网站| 国产传媒免费在线观看| 欧美国产另类| 8x海外华人永久免费日韩内陆视频| 九九热国产视频| 美女国产一区| 成人高h视频在线| www.色日本| 成人黄色小视频在线观看| 久久久久久久久久码影片| 黄网在线免费| 中文字幕在线一区| av在线免费观看国产| 是的av在线| 欧美日韩免费不卡视频一区二区三区| 亚洲制服在线观看| 欧美三级电影在线| 中文字幕亚洲在线| 九九热国产在线| 国产日韩欧美三级| 国产日韩在线视频| 六月婷婷中文字幕| 欧美高清在线视频| 欧美中文字幕在线观看视频| 亚洲天堂一区二区| 日韩欧美国产麻豆| 真实乱视频国产免费观看 | 亚洲美女在线看| 国产在线免费av| 国内精品亚洲| 国产精品入口日韩视频大尺度| 国产视频手机在线观看| 91美女片黄在线观看91美女| 国产精品波多野结衣| 欧美裸体视频| 欧美一区二区三区在线看| 最近日本中文字幕| 一区二区电影| 国产精品7m视频| 亚洲av无码专区在线| 久久精品男人天堂av| 无码熟妇人妻av在线电影| 亚洲a∨精品一区二区三区导航| 日韩欧美一区二区免费| 欧美大波大乳巨大乳| 精品成人久久| 91久久久久久久久久| 你懂的免费在线观看视频网站| 亚洲摸摸操操av| 日韩av片网站| 欧美日韩123| 国产+成+人+亚洲欧洲| 91精品国自产| 国产日韩欧美a| 成人中文字幕在线播放| 亚洲精品视频一二三区| 久久中文字幕在线| 最近中文字幕在线观看视频| 91小视频免费观看| 国产一区二区三区小说| 久久久久久久久成人| 中文日韩在线视频| 毛片在线免费播放| 久久久亚洲午夜电影| 青青青免费在线| 999在线精品| 欧美日本在线视频中文字字幕| 在线观看av大片| 国产日韩视频一区二区三区| 国产日韩一区二区在线| 精品在线网站观看| 午夜欧美大片免费观看| 亚洲国产精品国自产拍久久| 亚洲欧美激情视频在线观看一区二区三区| 香蕉视频禁止18| 欧美日韩水蜜桃| 国产精品高潮呻吟久久av无限| 日本a一级在线免费播放| 图片区小说区区亚洲影院| 亚洲成年人在线观看| 欧美深夜福利| 国产91精品入口17c| 四虎884aa成人精品| 日韩精品一级二级| 日韩三级电影免费观看| 日本综合久久| 色黄久久久久久| 国产欧美日韩综合精品一区二区三区| 国产欧美一区二区三区在线看蜜臀| 日日碰狠狠丁香久燥| 国产在视频线精品视频www666| 国产91色在线免费| caoporn国产精品免费视频| 欧洲在线/亚洲| 国产喷水在线观看| 国产一区二区福利视频| 男人天堂av片| 啄木系列成人av电影| 国产精品福利在线| av免费在线免费观看| 精品美女一区二区三区| 一级片中文字幕| 国产视频视频一区| 中文字幕在线视频一区二区三区| 欧美91精品| 精品麻豆av| 夜级特黄日本大片_在线 | 国产精品无码专区av在线播放| 精品在线播放| 成人乱色短篇合集| a毛片不卡免费看片| 亚洲欧美日韩国产中文| 亚洲视频一区二区三区四区| 亚洲精品第1页| theav精尽人亡av| 日本伊人午夜精品| 久久久久久久香蕉| 女人av一区| 2022国产精品| 日韩精品影片| 久久久久久久97| av黄色在线观看| 精品久久久久久久一区二区蜜臀| 亚洲视频 欧美视频| 亚洲欧美日韩一区二区 | 亚洲日本欧美天堂| 久久人人爽人人人人片| 国产在线精品一区在线观看麻豆| 午夜精品久久久久久久无码| 欧美国产一级| 免费av在线一区二区| 日韩成人久久| 国产精品高潮呻吟久久av无限| 97人澡人人添人人爽欧美| 中文字幕日韩精品有码视频| 日韩性xxxx| 制服.丝袜.亚洲.另类.中文| 午夜婷婷在线观看| 亚洲一二三区视频在线观看| 99久久99久久精品免费看小说.| 成人天堂资源www在线| 中文av一区二区三区| 国产美女一区| 日韩精品在线视频免费观看| 欧美韩日一区| 欧洲精品在线一区| 日本妇女一区| 国产精成人品localhost| 日本免费久久| 69av成年福利视频| 密臀av在线| 欧美成人免费观看| 日本在线视频观看| 国产亚洲精品久久久优势| 手机在线观看毛片| 日韩美女视频一区二区在线观看| 国产在线观看第一页| 欧美日韩在线免费观看| 久久免费公开视频| 亚洲精品国久久99热| 国产美女网站视频| 国产精品三级视频| 男生草女生视频| 久久女同性恋中文字幕| 免费的av网站| www.在线成人| 国产精品成人99一区无码| 国产成人精品一区二区三区四区| 亚洲涩涩在线观看| 久久99精品国产91久久来源| 一区二区三区免费播放| 久久婷婷影院| 久久久久久久久久福利| 久久精品1区| 日韩 欧美 高清| 久久美女性网| 浓精h攵女乱爱av| 美女网站视频久久| 亚洲天堂国产视频| 国内久久婷婷综合| 亚洲欧美天堂在线| 国产一区二区三区久久久| 欧美性猛交xxxx乱大交91| 国产美女主播视频一区| 特黄特黄一级片| 国产suv精品一区二区三区| zjzjzjzjzj亚洲女人| www.视频一区| 亚洲综合网在线观看| 亚洲国产精品精华液2区45| 免费看一级黄色| 亚洲精品国产a| 五月婷婷激情网| 日韩人在线观看| 一级二级三级视频| 日韩欧美成人午夜| 四虎在线视频免费观看| 亚洲男人的天堂网站| 在线视频91p| 欧美成人第一页| 老色鬼在线视频| 国产精品久久久久久久久| 亚洲精品自拍| 国产欧美欧洲| 欧美一区2区| 亚洲午夜精品一区二区| 欧美视频在线观看| 黄色片久久久久| 久久久久久久久丰满| 丰满人妻一区二区三区53号| 亚洲日韩视频| www亚洲成人| 国产成人免费网站| jizz中文字幕| 亚洲综合一区在线| av手机天堂网| 日韩欧美另类在线| 国产三级在线看| 欧美成人中文字幕在线| 亚洲午夜天堂| 99中文字幕| 国模精品一区| www.夜夜爱| 麻豆一区二区三区| 精品无码国产一区二区三区51安| 欧美国产日韩一二三区| 国产真人真事毛片| 欧美人xxxx| 欧洲成人av| 欧美大片在线看| 欧美暴力调教| 好看的日韩精品| 亚洲成人99| 黄色国产小视频| 成人国产精品免费观看| av资源在线免费观看| 红桃av永久久久| 国产巨乳在线观看| 亚洲人成在线播放| 999av小视频在线| 成人精品久久久| 精品久久电影| 久久久一本二本三本| 国产福利一区二区三区视频在线| 免费看裸体网站| 欧美日韩加勒比精品一区| 国产成人精品一区二区无码呦| 亚洲午夜未删减在线观看 | 国产成人精品视频| 凹凸av导航大全精品| 五月天综合婷婷| 日本一不卡视频| 四虎永久免费影院| 亚洲黄色录像片| 国产麻豆一精品一男同| 中文字幕欧美精品在线| 亚洲成人人体| 麻豆成人小视频| 日韩亚洲精品在线| av电影在线播放| 一区二区久久久久久| 99riav国产| 另类美女黄大片| 国产精品视频一区视频二区| 亚洲欧美国产不卡| 日韩精品一级中文字幕精品视频免费观看| 亚洲国产欧美视频| 午夜精品久久久久久| 蜜桃视频久久一区免费观看入口| 久久综合色88| 美女精品久久| 国产人妻人伦精品| 国产精品亚洲第一| 麻豆国产尤物av尤物在线观看| 91精品国产综合久久福利软件| 免费av在线| 亚洲自拍欧美色图| 亚洲欧美综合| 日本精品一二三区| 亚洲电影第三页| 无码精品视频一区二区三区| 97在线视频精品| 妖精一区二区三区精品视频| 久久9精品区-无套内射无码| 久久久久久久久久久久久久久99| 天天干天天干天天| 亚洲人成在线一二| 成人在线中文| 91制片厂免费观看| 国产精品一二三区在线| 国产精品成人aaaa在线| 日韩av一卡二卡| **在线精品| 亚洲一区二区三区精品在线观看| 精品午夜久久福利影院| 国产a免费视频| 亚洲国产精品女人久久久| 成人国产二区| 一级特黄录像免费播放全99| 国产乱子轮精品视频| 国产精品23p| 亚洲天堂av在线免费| 久久精品黄色| 青青青青在线视频| 26uuu国产电影一区二区| 国产精品无码粉嫩小泬| 久色乳综合思思在线视频| 久久99国产精品久久99大师| 日韩手机在线观看视频| 亚洲欧美日韩国产中文在线| 人妻中文字幕一区| 国产成人精品在线观看| 女人色偷偷aa久久天堂| 欧美性xxxx图片| 6080亚洲精品一区二区| 男人天堂视频在线观看| 亚洲人成网站在线观看播放| 国产999精品久久| 久久这里只有精品9| 米奇精品一区二区三区在线观看| 日韩av不卡一区| 在线一区二区不卡| 欧美午夜精品伦理| gogogogo高清视频在线| 欧美日韩在线观看一区| 国产精品资源站在线| 黄色在线视频网址| 久久国产天堂福利天堂| 黑丝美女一区二区| jjzzjjzz欧美69巨大| 91精品国产高清一区二区三区| 最近在线中文字幕|