JPanel

JPanel

JPanel 是 Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,是一種輕量級容器,可以加入到JFrame窗體中。JPanel默認的布局管理器是FlowLayout,其自身可以嵌套組合,在不同子容器中可包含其他組件(component),如JButton、JTextArea、JTextField 等,功能是對窗體上的這些控制項進行組合,相當於C++和C#中的Panel類。

簡介

JPanel 是 Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,可以進行嵌套,功能是對窗體中具有相同邏輯功能的組件進行組合。

所有已實現的接口:

ImageObserver, MenuContainer, Serializable, Accessible

直接已知子類:

AbstractColorChooserPanel, JSpinner.DefaultEditor

JPanel 是一般輕量級容器.

使用方法

JPanel 可以為添加到窗體中的輕型控制項提供通用的容器。默認情況下,面板容器不會向控制項添加任何除自身背景之外的顏色,但是,可以輕鬆地向其添加框線(borders) 並根據需要改制樣式。

在大多數Java GUI外觀體驗(look and feel)中,面板容器默認是不透明。不透明的面板容器跟普通的目錄窗格功能差別不大,並且可以有效幫助樣式改進。

設定圖層管理器

和其他容器(container)一樣,面板容器 panel 也使用布局管理器(Layout Manager)對添加到容器中的組件(compnent)進行定位和設定尺寸大小。默認情況下,面板容器的布局管理器是FlowLayout(流式布局)類的一個實例,這個類對放置在容器中的空間按行進行布局(從左到右諸行排列)。 在創建面板容器時,你可以輕鬆地使用任何其他布局管理器通過調用setLayout方法或指定一個布局管理器。

如下是一個在創建面板容器時設定圖層管理器的例子:

但這種方法不能用在BoxLayout(盒子布局)中,因為BoxLayout 構造器需要一個預留(pre-existing)容器。如下所示:

添加控制項

向面板容器中添加組件時使用add()方法,而向add()方法中傳遞的參數決定於該面板容器使用哪個布局管理器。當所用的布局管理器是FlowLayout,BoxLayout,GridLayout,或SpringLayout 時,像通常那樣向add()方法傳遞單一的參數即可,如下所示:

而當布局管理器為BorderLayout時,還需要提供另一個參數來指定添加到容器中控制項的位置,例如:

對於GridBagLayout布局管理器,可以使用上述任一方法,但必須以某種方式對每個組件指定GridBagConstraints,例如:

警告

Swing 不是執行緒安全的。

此類的序列化對象與以後的 Swing 版本不兼容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程式之間進行 RMI(Remote Method Invocation,遠程方法調用)

構造方法

JPanel() 創建具有雙緩衝和流布局的新 JPanel。

JPanel(boolean isDoubleBuffered) 創建具有 FlowLayout 和指定緩衝策略的新 JPanel。

JPanel(LayoutManager layout) 創建具有指定布局管理器的新緩衝 JPanel。

JPanel(LayoutManager layout, boolean isDoubleBuffered) 創建具有指定布局管理器和緩衝策略的新 JPanel

相關詞條

相關搜尋

熱門詞條

聯絡我們