-
JPanel
鎖定
JPanel 是 Java圖形用户界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,是一種輕量級容器,可以加入到JFrame窗體中。JPanel默認的佈局管理器是FlowLayout,其自身可以嵌套組合,在不同子容器中可包含其他組件(component),如JButton、JTextArea、JTextField 等,功能是對窗體上的這些控件進行組合,相當於C++和C#中的Panel類。
JPanel內容簡介
JPanel是Java圖形用户界面(GUI)工具包swing中的面板容器類,包含在javax.swing包中,可以進行嵌套,功能是對窗體中具有相同邏輯功能的組件進行組合。
所有已實現的接口:
ImageObserver, MenuContainer, Serializable, Accessible
直接已知子類:
AbstractColorChooserPanel, JSpinner.DefaultEditor
JPanel 是一般輕量級容器.
[1]
JPanel使用方法
JPanel 可以為添加到窗體中的輕型控件提供通用的容器。默認情況下,面板容器不會向控件添加任何除自身背景之外的顏色,但是,可以輕鬆地向其添加邊框(borders) 並根據需要改制樣式。
設置圖層管理器
和其他容器(container)一樣,面板容器 panel 也使用佈局管理器(Layout Manager)對添加到容器中的組件(compnent)進行定位和設置尺寸大小。默認情況下,面板容器的佈局管理器是FlowLayout(流式佈局)類的一個實例,這個類對放置在容器中的空間按行進行佈局(從左到右諸行排列)。
[3]
在創建面板容器時,你可以輕鬆地使用任何其他佈局管理器通過調用setLayout方法或指定一個佈局管理器。
如下是一個在創建面板容器時設置圖層管理器的例子:
JPanel p = new JPanel(new BorderLayout());
JPanel p = new JPanel(); p.setLayout(new BoxLayout(p, BoxLayout.PAGE_AXIS));
添加控件
向面板容器中添加組件時使用add()方法,而向add()方法中傳遞的參數決定於該面板容器使用哪個佈局管理器。當所用的佈局管理器是FlowLayout,BoxLayout,GridLayout,或SpringLayout 時,像通常那樣向add()方法傳遞單一的參數即可,如下所示:
[2]
aFlowPanel.add(aComponent); aFlowPanel.add(anotherComponent);
而當佈局管理器為BorderLayout時,還需要提供另一個參數來指定添加到容器中控件的位置,例如:
aBorderPanel.add(aComponent, BorderLayout.CENTER); aBorderPanel.add(anotherComponent, BorderLayout.PAGE_END);
對於GridBagLayout佈局管理器,可以使用上述任一方法,但必須以某種方式對每個組件指定GridBagConstraints,例如:
JPanel pane = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints();
警告
Swing 不是線程安全的。
此類的序列化對象與以後的 Swing 版本不兼容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程序之間進行 RMI(Remote Method Invocation,遠程方法調用)
JPanel構造方法
JPanel() 創建具有雙緩衝和流佈局的新 JPanel。
JPanel(boolean isDoubleBuffered) 創建具有 FlowLayout 和指定緩衝策略的新 JPanel。
JPanel(LayoutManager layout) 創建具有指定佈局管理器的新緩衝 JPanel。
JPanel(LayoutManager layout, boolean isDoubleBuffered) 創建具有指定佈局管理器和緩衝策略的新 JPanel
- 參考資料
-
- 1. The Java™ Tutorials- Class JPanel .Oracle[引用日期2015-08-20]
- 2. The Java™ Tutorials-How to Use Panels .Oracle[引用日期2015-08-20]
- 3. 二十九、Java圖形化界面設計——佈局管理器之FlowLayout(流式佈局) .CSDN博客.2012-07-21[引用日期2015-08-20]