java零基础入门知识3.3——Swing基础知识总结(四)

来源:互联网 发布:厦门大数据协会 编辑:程序博客网 时间:2024/05/16 01:08

本章介绍如何使用布局管理器组件和面板组件

布局管理器

step:

1)创建XX布局管理对象

2)将容器设置成XX布局管理

3)创建组件

4)将组件添加进XX布局管理中



1、BorderLayout:

容器分为5部分,每个区域可容纳一个组件

(1)BorderLayout的构造

BorderLayout(int h,int v)创建一个具有指定组件间距的边框布局

##例子##

JFrame jf=new JFrame();

BorderLayout lay=new BorderLayout();

jf.setLayout(lay);                                           =jf.setLayout(new BorderLayout());        

JButton b1=new JButton("1");

//contentPane.add(b1);

contentPane.add(b1,"North");

2、FlowLayout

按照控件加入的先后顺序从左到右排列。

contentPane.setLayout(new FlowLayout());    //Border是划分Frame框架和内容面板,FlowLayout是划分内容面板

jf.pack();//自动调整Frame大小,使所有组件都显示出来。

3、GridLayout//GridLayout是划分内容面板

类似围棋盘,将整个布局控件划分成若干行乘若干列的网络区域。

GridLayout grid=new GridLayout(3,3);

contentPane.setLayout(grid);

4、GridBagLayout// 与3不同,Bag按照自己的思路来放置排列控件位置

step:

1)创建GridBagLayout对象

2)将容器设置成GridBagLayout布局管理

3)创建约束GridBagConstraints对象

4)创建组件

5)将组件添加进GridBagLayout布局管理中

一、实现方法:四个位置参数:gridX、gridY(组件添加时左上角列与行位置)、gridwidth、gridheight(组件占用列数,行数

二、增量字段:weightx,weighty 对应窗口缩放引起组件缩放的值

三、fill (组件不能填满单元格时)

GridBagConstraints.NONE每个方向不填充

.......

anchor(组件大于分配单元格时)

GridBagConstraints.CENTER(居中缩小)

##举例##

GridBagLayout lay=new GridBagLayout()

GridBagConstraints constraints = new GridBagConstraints()

constraints.fill=GridBagConstraints.NONE

constraints.anchor=GridBagConstraints.EAST(右侧缩小)

constraints.weightx=3

constraints.heighty=4

add(title(某某组件对象名),constraints,0,0,4,1);

5、CardLayout

1、CardLayout 布局管理器

public CardLayout(int hgap,int vgap)//创建新卡片布局管理器,设定水平和垂直方向上的空白空间

2、CardLayout常用方法

public void frist(Container parent) 移到指定容器的第一个卡片

public void next(Container parent) 移到指定容器的下一个卡片

public void show(Container parent,String name) 显示指定卡片

public void frist(Container parent) 移到指定容器的第一个卡片

##举例##

card=new CardLayout(5,5)

pane=new JPanel(card)

card.previous(pane);

面板组件

常用的面板组件有JPanel、JScrolPane、JSplitPane等。

本文主要介绍JPanel。

面板即为容器,准确的说是中间容器。

JPanel构造器

JPanel()

JPanel(LayoutManager layout)创建具有指定布局管理器的新JPanel

##举例##

FlowLayout f1 = new FlowLayout();

contentPane.setLayout(f1);

等价于

contentPane.setLayout(new FlowLayout());


0 0
原创粉丝点击