您好,登錄后才能下訂單哦!
這篇文章給大家介紹控件位置可以配置的Swing桌面是怎么樣的,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
用過Wordpress或者Joomla的朋友一定對他們的靈活的頁面布局印象深刻。在Joomla中,你可以將一個控件,放在頁面的任何一個位置,例如:左邊,右邊,菜單,底部等等。
所以我也嘗試著在Swing桌面上實現類似的功能,思考以后發現其實swing實現這種功能比利用html頁面實現該功能還簡單。
首先我們定義一個位置接口,實現該接口的類就標示它的位置
public interface Arrange { public String getComponentName(); }
第二:繼承Arrange 接口,定義不用的位置接口,分別有
public interface ArrangeBottom extends Arrange public interface ArrangeLeft extends Arrange public interface ArrangeLogo extends Arrange public interface ArrangeMainBottom extends Arrange public interface ArrangeMenuBar extends Arrange public interface ArrangeRight extends Arrange public interface ArrangeToolBar extends Arrange
上面的接口標示的位置見下圖:
第三:我們寫一個面板,實現位置接口
例如:public class ZPanel extends JPanel implements ArrangeRight
protected void paintComponent(Graphics g) { if (null != wallpaper) { processBackground(g); } System.out.println("f:paintComponent(Graphics g)"); } public void setBackground() { wallpaper = new javax.swing.ImageIcon(getClass() .getResource("/com/peraglobal/workspace/initcompt/picpanel/kutoku.jpg")); this.repaint(); }
第四:在配置文件中配置這個類
打開配置文件按zlconfig.xml
編寫 <bean class="com.peraglobal.workspace.initcompt.picpanel.ZPanel" ></bean>
第五:加載配置文件
我們利用Spring將配置文件中實現了某一接口的類全部拿出,并且加載到指定的位置:
Map<?, ?> lefts = context.getBeansOfType(ArrangeLeft.class); ArrangeLeft agLeft; leftPanel.setLayout(new BorderLayout()); JTabbedPane tabLeft = new JTabbedPane(); leftPanel.add(tabLeft); Iterator<?> it = lefts.entrySet().iterator(); while (it.hasNext()) { Map.Entry<?, ?> entry = (Map.Entry<?, ?>) it.next(); Object key = entry.getKey(); Class<?> newClass = Class.forName((String) key); agLeft = (ArrangeLeft) newClass.newInstance(); tabLeft.add((Component) agLeft, agLeft.getComponentName()); }
第六:我們看到我們剛才寫的一個Panel已經加載到了右邊的面板中
關于控件位置可以配置的Swing桌面是怎么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。