使用方法:
JPanel可以為添加到窗體中的輕型控件提供通用的容器。默認情況下,面板容器不會向控件添加任何除自身背景之外的顏色,但是,可以輕松地向其添加邊框(borders)並根據需要改制樣式。
在大多數Java GUI外觀體驗(look and feel)中,面板容器默認是不透明。不透明的面板容器跟普通的目錄窗格功能差別不大,並且可以有效幫助樣式改進。
設置圖層管理器
和其他容器(container)壹樣,面板容器panel也使用布局管理器(Layout Manager)對添加到容器中的組件(compnent)進行定位和設置尺寸大小。
默認情況下,面板容器的布局管理器是FlowLayout(流式布局)類的壹個實例,這個類對放置在容器中的空間按行進行布局(從左到右諸行排列)。在創建面板容器時,妳可以輕松地使用任何其他
布局管理器通過調用setLayout方法或指定壹個布局管理器。
如下是壹個在創建面板容器時設置圖層管理器的例子:
JPanel p=new JPanel(new BorderLayout());
但這種方法不能用在BoxLayout(盒子布局)中,因為BoxLayout構造器需要壹個預留(pre-existing)容器。如下所示:
JPanel p=new JPanel();
p.setLayout(new BoxLayout(p,BoxLayout.PAGE_AXIS));
添加控件
向面板容器中添加組件時使用add()方法,而向add()方法中傳遞的參數決定於該面板容器使用哪個布局管理器。當所用的布局管理器是FlowLayout,BoxLayout,GridLayout,或SpringLayout時,像通常那樣向add()方法傳遞單壹的參數即可,如下所示:
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 Pan=new JPanel();
Pan.setLayout(null);//設置為空布局也就是自由布局
Pan.add(控件);//添加控件
JPanel是java圖形化界面中最常使用的容器。實例:在窗體中添加壹個藍色的面板
//PanelDemo.java
import javax.swing.*;
import java.awt.*;//引入AWT包,因為要使用到顏色類
class PanelDemo{
public static void main(String[]args)throws Exception
{JFrame f=new JFrame("第壹個Java窗口");
f.setSize(300,200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.setResizable(false);
f.setLocationRelativeTo(null);
f.setLayout(null);//設置窗體布局為空布局
JPanel p=new JPanel();//實例化壹個面板
//設置面板背景色為藍色,如果不引入AWT包,程序將出錯,可以試試看
p.setBackground(Color.BLUE);
p.setSize(100,100);//設置面板對象大小
f.getContentPane().add(p);//將面板添加到窗體中
//如果使用下面添加面板的方法,面板將布滿整個窗口,可以試試看
//f.setContentPane(p);
}
}
參考資料:
百度百科——JPanel