81布局管理介绍 GridLayout Gridlayout布局方式可以使容器中的各组件呈网格状分布 容器中各组件的高度和宽度相同,当容器的尺寸发生变化时, 各组件的相对位置不变,但各自的尺寸会发生变化 各组件的排列方式:从左到右,从上到下。 与 Border layout类相类似,如果想在一个网格单元中添加 多个组件,则必须先在该网格单元放一个Pane容器,再将多 个组件放在该Pane容器中
8.1 布局管理介绍——GridLayout GridLayout布局方式可以使容器中的各组件呈网格状分布。 容器中各组件的高度和宽度相同,当容器的尺寸发生变化时, 各组件的相对位置不变,但各自的尺寸会发生变化。 各组件的排列方式:从左到右,从上到下。 与BorderLayout类相类似,如果想在一个网格单元中添加 多个组件,则必须先在该网格单元放一个Panel容器,再将多 个组件放在该Panel容器中
81布局管理介绍 GridLayout Grid Layout类有三种构造方法 public Grid Layout( 在一行中放置所有的组件,各组件间的水平间距为0象素。 public gridLayout(int rows, int cols 生成一个rows行,cols列的管理器,最多能放置rows*cols个 组件 rOwS或coS 可以有一个为0。若rows为0,这表示每行放置 cols个组件,根据具体组件数,可以有任意多行;若cols为0, 这表示共有rows行,根据具体组件数,每行可以放置任意多 个组件 组件间的水平和竖直间距为0象素。 public Grid Layout(int rows, int cols, int horizontal Gap, int vertical Gap) 各组件间的水平和竖直间距为指定值
8.1 布局管理介绍——GridLayout GridLayout类有三种构造方法: public GridLayout() 在一行中放置所有的组件,各组件间的水平间距为0象素。 public GridLayout(int rows, int cols) 生成一个rows行,cols列的管理器,最多能放置rows*cols个 组件。 rows或cols可以有一个为0。若rows为0,这表示每行放置 cols个组件,根据具体组件数,可以有任意多行;若cols为0, 这表示共有rows行,根据具体组件数,每行可以放置任意多 个组件。 组件间的水平和竖直间距为0象素。 public GridLayout(int rows, int cols, int horizontalGap, int verticalGap ) 各组件间的水平和竖直间距为指定值
import java. awt. * i import javax. swing. * i class Frame Grid extends JFrame Frame Grid (String name) super(name); Container contenet pane= this. getContentPane();//获取框架面板 Grid Layout flow Layout=new Grid Layout(4, 3); flow Layout, setHgap(4) //设置组件的水平间距 flow Layout. setVgap(6); /设置组件的垂直间距 contenetPane. setLayout(flow Layout);//设置容器的布局为 flowLayout for(int j=1jj<=4;j++) for(int i=1;i<=3; 1++) contenetPane add( new JButton("按钮"+i)//把按钮加入容器 Example 2.java
import java.awt.*; import javax.swing.*; class FrameGrid extends JFrame { FrameGrid(String name) { super(name); Container contenetPane=this.getContentPane(); //获取框架面板 GridLayout flowLayout=new GridLayout(4,3); flowLayout.setHgap(4); //设置组件的水平间距 flowLayout.setVgap(6); //设置组件的垂直间距 contenetPane.setLayout(flowLayout); //设置容器的布局为 flowLayout for(int j=1;j<=4;j++) for(int i=1;i<=3;i++) { contenetPane.add(new JButton("按钮 "+i)); //把按钮加入容器 } Example8_2 .java
contenetPane. validate; //设置容器有效 setBounds(10, 10, 10, 10); setsize(300,300); setvisible(true); /设置组件可见 setDefaultcloseOperation( JFrame DISPOSE_QN_ CLOSE)//关闭窗 口,并结束程序的运行 } public class Example8_2 public static void main(String args[D) Framegrid frame= new Framegrid(" Grid Layout布局窗口") Example 2.java
contenetPane.validate(); //设置容器有效 setBounds(10,10,10,10); setSize(300,300); setVisible(true); //设置组件可见 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //关闭窗 口,并结束程序的运行 } } public class Example8_2 { public static void main(String args[]) { FrameGrid frame=new FrameGrid("GridLayout布局窗口"); } } Example8_2 .java
81布局管理介绍— CardLayout Cardlayout布局方式可以帮助用户处理两个或更多的组件 共享同一显示空间。共享空间的组件之间的关系就像一摞牌 样,它们摞在一起,只有最上面的组件是可见的 CardLayout可以象换牌一样处理这些共享空间的组件:为每 张牌定义一个名字,可按名字选牌;可以按顺序向前或向后 翻牌;也可以直接选第一张或最后一张牌 public void show( Container parent, String name) public void next( Container parent) public void previous( container parent) public void first( Container parent public void last( Container parent) 其中, Container是拥有该 Cardlayout布局管理器的容器
8.1 布局管理介绍——CardLayout CardLayout布局方式可以帮助用户处理两个或更多的组件 共享同一显示空间。共享空间的组件之间的关系就像一摞牌 一样,它们摞在一起,只有最上面的组件是可见的。 CardLayout可以象换牌一样处理这些共享空间的组件:为每 张牌定义一个名字,可按名字选牌;可以按顺序向前或向后 翻牌;也可以直接选第一张或最后一张牌。 ▪ public void show(Container parent, String name) ▪ public void next(Container parent) ▪ public void previous(Container parent) ▪ public void first(Container parent) ▪ public void last(Container parent) 其中,Container是拥有该CardLayout布局管理器的容器