自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

控件位置可以配置的Swing桌面

開發(fā) 后端
用過Wordpress或者Joomla的朋友一定對(duì)他們的靈活的頁面布局印象深刻。在Joomla中,你可以將一個(gè)控件,放在頁面的任何一個(gè)位置,例如:左邊,右邊,菜單,底部等等。

用過Wordpress或者Joomla的朋友一定對(duì)他們的靈活的頁面布局印象深刻。在Joomla中,你可以將一個(gè)控件,放在頁面的任何一個(gè)位置,例如:左邊,右邊,菜單,底部等等。

所以我也嘗試著在Swing桌面上實(shí)現(xiàn)類似的功能,思考以后發(fā)現(xiàn)其實(shí)swing實(shí)現(xiàn)這種功能比利用html頁面實(shí)現(xiàn)該功能還簡(jiǎn)單。

首先我們定義一個(gè)位置接口,實(shí)現(xiàn)該接口的類就標(biāo)示它的位置

  1. public interface Arrange {  
  2.       
  3.     public String getComponentName();  
  4.  

第二:繼承Arrange 接口,定義不用的位置接口,分別有

  1. public interface ArrangeBottom extends Arrange  
  2. public interface ArrangeLeft extends Arrange  
  3. public interface ArrangeLogo extends Arrange  
  4. public interface ArrangeMainBottom extends Arrange  
  5. public interface ArrangeMenuBar extends Arrange  
  6. public interface ArrangeRight extends Arrange  
  7. public interface ArrangeToolBar extends Arrange  

上面的接口標(biāo)示的位置見下圖:

第三:我們寫一個(gè)面板,實(shí)現(xiàn)位置接口

例如:public class ZPanel extends JPanel implements ArrangeRight

  1. protected void paintComponent(Graphics g) {  
  2.         if (null != wallpaper) {  
  3.             processBackground(g);  
  4.         }  
  5.         System.out.println("f:paintComponent(Graphics g)");  
  6.     }  
  7.  
  8.     public void setBackground() {  
  9.         wallpaper = new javax.swing.ImageIcon(getClass()  
  10.                 .getResource("/com/peraglobal/workspace/initcompt/picpanel/kutoku.jpg"));  
  11.         this.repaint();  
  12.     }  

第四:在配置文件中配置這個(gè)類

打開配置文件按zlconfig.xml

編寫 <bean class="com.peraglobal.workspace.initcompt.picpanel.ZPanel" ></bean>

第五:加載配置文件

我們利用Spring將配置文件中實(shí)現(xiàn)了某一接口的類全部拿出,并且加載到指定的位置:

  1. Map<?, ?> lefts = context.getBeansOfType(ArrangeLeft.class);  
  2.         ArrangeLeft agLeft;  
  3.  
  4.         leftPanel.setLayout(new BorderLayout());  
  5.         JTabbedPane tabLeft = new JTabbedPane();  
  6.  
  7.         leftPanel.add(tabLeft);  
  8.  
  9.         Iterator<?> it = lefts.entrySet().iterator();  
  10.         while (it.hasNext()) {  
  11.             Map.Entry<?, ?> entry = (Map.Entry<?, ?>) it.next();  
  12.             Object key = entry.getKey();  
  13.  
  14.             Class<?> newClass = Class.forName((String) key);  
  15.             agLeft = (ArrangeLeft) newClass.newInstance();  
  16.             tabLeft.add((Component) agLeft, agLeft.getComponentName());  
  17.         }  

第六:我們看到我們剛才寫的一個(gè)Panel已經(jīng)加載到了右邊的面板中

原文鏈接:http://javapub.iteye.com/blog/865475

【編輯推薦】

  1. Swing特效:漸顯效果
  2. Java Swing用戶界面設(shè)計(jì):序
  3. 用Swing制作精美的圖層疊加圖
  4. 簡(jiǎn)述Java圖形用戶界面設(shè)計(jì)(Swing)
  5. Effective Java 創(chuàng)建和銷毀對(duì)象
責(zé)任編輯:林師授 來源: javapub的博客
相關(guān)推薦

2009-07-10 09:58:08

Swing控件聽覺反饋

2009-07-15 14:10:26

Swing控件

2009-07-16 12:58:50

Swing控件

2009-07-10 13:55:48

Swing控件

2009-07-17 16:09:29

Swing桌面應(yīng)用程序

2012-12-07 10:21:39

IBMdW

2009-07-14 09:52:10

TableModelESwing

2009-07-14 15:39:34

Swing大多數(shù)控件

2009-12-24 15:43:17

WPF控件相對(duì)位置

2009-07-15 15:35:59

Swing程序Swing性能

2010-01-05 16:40:28

2019-12-20 13:50:11

LinuxOpenbox

2009-07-14 17:21:42

Swing組件

2009-07-15 11:02:32

Swing組件

2009-07-10 14:41:57

Swing技術(shù)

2009-07-14 15:01:02

AWT和Swing

2009-07-16 08:53:03

Swing任務(wù)Swing線程

2009-07-10 13:36:32

Swing容器

2009-07-10 11:25:48

Swing應(yīng)用數(shù)據(jù)驗(yàn)證

2009-07-10 16:29:32

Swing組件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)