更新時間:2021-08-19 來源:黑馬程序員 瀏覽量:
Swing組件中不僅有JFrame 和 JDialog 這樣的頂級容器,而且提供了一些面板組件(也稱為中間容器)。面板組件不能單獨存在,只能放置在頂級窗口容器中。最常見的面板組件有兩種,分別是JPanel和 JSerollPane,下面分別介紹這兩種面板組件。
1.JPanel
JPanel面板組件是個無邊框且不能被移動、放大、縮小或者關閉的面板,它的默認布局管理器是FlowLayout。也可以使用JPanel帶參數的構造函數JPanel (LayoutManager layout)或者setLayout()成員方法設置JPanel布局管理器。
JPanel面板組件類并沒有包含多少特殊的組件操作方法,大數都是從父類(如 Container)繼承過來的,使用也非常簡單。
2. JScrollPane
JScrollPane是一個帶有滾動條的面板,面板上只能添加一個組件。如果想向JScrollPane面板中添加多個組件,應該先將多個組件添加到某個組件中,然后將這個組件添加到JScrollPane中。
JScrollPane的常用構造法如表11-7所示。
表11-7 JScrollPane的常用構造方法
如果在構造方法中設定顯示組件和滾動條策略,可以調用JScrollPane提供的成員方法法進行設置,JScrollPane面板滾動策略的執行方法如表11-8所示
關于上述介紹的JScolPlane 面板組件滾動策略的設置方法,ScollPande 接口聲明了多個常量屬性,可以用來設置不同的滾動策略。
JscolPame的滾動屬性如表11-9所示。
表11-9 JSrollPane 的滾動屬性
下面通過一個案例演示面板組件的基本用法,如文件11-11所示。
文件1-11 Example11java
Import java.awt.*; import javax. swing.*;. public class Examplell { private static void createAndshowGUI (){ // 1創建一個JFrame容器窗口 JFrame f = new JFrame ("PanelDemo") ; f,setLayout (new BorderLayout () ) ; f.setsize (350,200 ) f.setlocation (300,200 ) f. setVisible(ture) f. setDefaultCloseOperation(JFrame.EXIT ON CLOSE) ; // 創建JScrollPane滾動面板組件 JScrollPane scrollPane =new JSscrollPane 設置水平滾動條策略--滾動條需要時最示 scrollPane.setHorizontalScrolIBarpolicy SerollPaneConstants HORIZONTAL_SCROLLBAR_ALWAYS) ” //定義一個JPanel面板組件 JPanel pane = new JPanel(); // JPanel 面板中加4個按鈕 panel.add (new JButton(按鈕“1") ) ; panel.add (new JButton(按鈕“2") ) ; panel.add (new JButton(按鈕“3") ) ; panel.add (new JButton(按鈕“4") ) ; 設置JPanel面板在滾動面板中JScrollPan中顯示 scrollPane.setviewportView(pane) 向JFrame容窗口中添加JSCrollpane中顯示 CENTER) ; scrollPane,BroderLayout.CENTER); } Public static void main(String[ ] args) { //使用SwingUtilitles工具類調用 createAndShowGUI( )方法并顯示GUI程序 SwingUtilitleh1ities . invokeLater(Exampll;;createAndShowGUI); } }
文件11-11的運行結果如11-22所示。
文件11-11的運行結果