資源描述:
《Swing組件詳解》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、swing布局詳解(附示例圖)當(dāng)選擇使用JPanel和頂層容器的contentpane時(shí),需要考慮布局管理。JPanel缺省是初始化一個(gè)FlowLayout,而contentpane缺省是初始化一個(gè)BorderLayout。下面將分別介紹幾種最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout和GridBagLayout。?代碼演示每一個(gè)布局管理器都會(huì)有一個(gè)代碼演示,xxxLayoutDemo.java(見附件)。這些文件主要有三個(gè)方法組成:addCo
2、mponentsToPane()提供布局邏輯(依據(jù)不同的布局管理器和UI內(nèi)容)。Java代碼?1.public?static?void?addComponentsToPane(Container?pane)?{。。。}??2./**?3.*createAndShowGUI()實(shí)例化一個(gè)JFrame,通過它的ContentPane加載布局邏輯內(nèi)容。?4.*/??5.private?static?void?createAndShowGUI()?{??6.????//?Create?and?set?up?the?window.??7.
3、????JFrame?frame?=?new?JFrame("FlowLayoutDemo");??8.????frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);??9.????//?Set?up?the?content?pane.??10.????addComponentsToPane(frame.getContentPane());??11.????//?Display?the?window.??12.????frame.pack();??13.????frame.se
4、tVisible(true);??14.}??15.//main()程序入口,單獨(dú)起一個(gè)線程,實(shí)例化UI。??16.public?static?void?main(String[]?args)?{??17.????javax.swing.SwingUtilities.invokeLater(new?Runnable()?{??18.???????public?void?run()?{??19.???????????createAndShowGUI();??20.???????}??21.????});??22.}???FlowL
5、ayoutFlowLayout類是最簡(jiǎn)單的布局管理器。它按照和頁(yè)面上排列單詞的類似方式來(lái)安排組件----從左到右,直至沒有多余的空間,然后轉(zhuǎn)到下一行。效果:內(nèi)容面板代碼:Java代碼?1.public?static?void?addComponentsToPane(Container?pane)?{??2.????pane.setLayout(new?FlowLayout());??3.????pane.add(new?JButton("Button?1"));??4.????pane.add(new?JButton("Butt
6、on?2"));??5.????pane.add(new?JButton("Button?3"));??6.????pane.add(new?JButton("Long-Named?Button?4"));??7.????pane.add(new?JButton("5"));??8.}???BorderLayout一個(gè)BorderLayout對(duì)象將界面分成五大區(qū)域,分別用BorderLayout類的靜態(tài)常量指定:-PAGE_START-PAGE_END-LINE_START-LINE_END-CENTER效果:?內(nèi)容面板代碼:J
7、ava代碼?1.public?static?void?addComponentsToPane(Container?pane)?{?????????2.????JButton?button?=?new?JButton("Button?1?(PAGE_START)");??3.????pane.add(button,?BorderLayout.PAGE_START);????????4.????button?=?new?JButton("Button?2?(CENTER)");??5.????button.setPreferredS
8、ize(new?Dimension(200,?100));??6.????pane.add(button,?BorderLayout.CENTER);??????7.????button?=?new?JButton("Button?3?(LINE_START)"