当前位置: 首页 > news >正文

建立网站的市场价格佛山58同城网推广

建立网站的市场价格,佛山58同城网推广,3d标签 wordpress,微信静首页制作代码文章目录 一、布局管理器引入二、布局管理器提高程序的适配性三、LayoutManager 布局管理器类四、FlowLayout 流式布局五、FlowLayout 流式布局 API六、FlowLayout 流式布局代码示例1、FlowLayout 流式布局左对齐代码示例及执行效果2、FlowLayout 流式布局居中对齐代码示例及执… 文章目录 一、布局管理器引入二、布局管理器提高程序的适配性三、LayoutManager 布局管理器类四、FlowLayout 流式布局五、FlowLayout 流式布局 API六、FlowLayout 流式布局代码示例1、FlowLayout 流式布局左对齐代码示例及执行效果2、FlowLayout 流式布局居中对齐代码示例及执行效果2、FlowLayout 流式布局右对齐代码示例及执行效果 七、BorderLayout 布局八、BorderLayout 构造函数 API九、BorderLayout 代码示例1、BorderLayout 基本用法代码示例2、BorderLayout 区域占用代码示例3、BorderLayout 同一区域显示多个组件代码示例 十、GridLayout 网格布局十一、GridLayout 构造函数十二、GridLayout 网格布局代码示例十三、GridBagLayout 网格包布局十四、CardLayout 卡片布局十五、CardLayout 卡片布局 API十六、CardLayout 卡片布局代码示例十七、BoxLayout 布局十八、BoxLayout 布局 API十九、BoxLayout 布局代码示例1、BoxLayout 布局垂直排列代码示例2、BoxLayout 布局水平排列代码示例 二十、Box 容器二十一、Box 容器 API二十二、Box 容器代码示例二十三、Box 容器中添加分割 一、布局管理器引入 在上一篇博客 【Java AWT 图形界面编程】Container 容器 ③ ( ScrollPane 可滚动容器示例 ) 中 , 向 ScrollPan 中添加了 TextField 文本框 和 Button 按钮 , 但是显示的时候效果如下 : 只显示了一个按钮 , 这是由于 ScrollPan 默认的 LayoutManager 布局管理器 导致的 ; 二、布局管理器提高程序的适配性 在界面中 添加一个 Button 按钮组件 , 可以 调用 Component 组件的 setBounds 函数 , 手动为其设置 位置 和 大小 , 手动设置宽高大小的像素值后 , 会造成 程序在不同平台的适配问题 , 如 : 在 Windows 中设置 100 px 的效果 , 与 在 Linux 中设置 200 px 的效果正好合适 ; 如果手动设置了组件的 宽高 , 位置 等精确的像素值 , 那么会 降低程序的适配效果 , 此时就需要在 Windows 下写一套程序 , 在 Linux 下写一套程序 ; LayoutManager 布局管理器 可以根据不同的操作系统 , 自动调整组件的位置和大小 ; 三、LayoutManager 布局管理器类 LayoutManager 布局管理器类 : LayoutManager 接口 GridLayout 网格布局FlowLayout 流式布局 LayoutManager2 接口 CardLayout 卡片布局GridBagLayout 网个包布局BorderLayout 边框布局 不同的布局管理器 , 对多个组件的展示效果不同 ; 四、FlowLayout 流式布局 FlowLayout 流式布局 中 , 组件 按照某个方向进行排列 , 如 : 从左到右从右到左从中间到两边 如果 遇到障碍 或者 走到界面边界 , 就 返回到开始位置 , 在下一行从头继续按照原方向进行排列 ; 如 : 下面的布局就是从左向右的流式布局 , 将 6 个组件放在 FlowLayout 流式布局中 , 1 , 2 , 3 组件放入后 , 再 放入 4 组件 , 发现第 1 排位置不够了 , 遇到障碍 , 此时折 返回左侧 , 另起一行 , 在第 2 排继续从左到右排列 ; 五、FlowLayout 流式布局 API FlowLayout 构造函数 : FlowLayout() 构造函数 : 使用 默认的 对齐方式 , 默认的 垂直间距 和 水平间距 , 创建流式布局 ; /*** 构造一个新的codeFlowLayout/code具有居中对齐和* 默认水平和垂直间隔为5单元。*/public FlowLayout() {this(CENTER, 5, 5);}FlowLayout(int align) 构造函数 : 使用 指定的 对齐方式 , 默认的 垂直间距 和 水平间距 , 创建流式布局 ; /*** 构造一个新的codeFlowLayout/code* 对齐和默认的5单元水平和垂直差距。* 对齐参数的值必须为之一* codeFlowLayout.LEFT/code, codeFlowLayout.RIGHT/code,* codeFlowLayout.CENTER/code, codeFlowLayout.LEADING/code,* or codeFlowLayout.TRAILING/code.* param align 对齐值*/public FlowLayout(int align) {this(align, 5, 5);}FlowLayout(int align, int hgap, int vgap) 构造函数 : 使用 指定的 对齐方式 , 指定的 垂直间距 和 水平间距 , 创建流式布局 ; /*** 使用指定的对齐方式创建一个新的流布局管理器* 以及指示的水平和垂直间隙。* p* 对齐参数的值必须为之一* codeFlowLayout.LEFT/code, codeFlowLayout.RIGHT/code,* codeFlowLayout.CENTER/code, codeFlowLayout.LEADING/code,* or codeFlowLayout.TRAILING/code.* param align 对齐值* param hgap 各组件之间的水平间隙* 在分量和* codeContainer/code的边界* param vgap 组件之间的垂直间隙* 在分量和* codeContainer/code的边界*/public FlowLayout(int align, int hgap, int vgap) {this.hgap hgap;this.vgap vgap;setAlignment(align);}六、FlowLayout 流式布局代码示例 Frame 是 Window 子类 , 是 界面中窗口 , 其 默认的布局管理器是 BorderLayout 布局管理器 , 通过 调用 Container#setLayout 函数 可以手动修改 容器的布局管理器 ; 1、FlowLayout 流式布局左对齐代码示例及执行效果 代码示例 : import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame new Frame(AWT 界面编程);// 创建流式布局// 布局中的组件从左到右进行排列// 水平间隔 10 像素, 垂直间隔 10 像素FlowLayout flowLayout new FlowLayout(FlowLayout.LEFT, 10, 10);// Frame 容器设置流式布局frame.setLayout(flowLayout);frame.setBounds(0, 0, 800, 500);// 添加多个组件for (int i 0; i 50; i ) {Button button new Button(按钮 i);frame.add(button);}frame.setVisible(true);} }执行结果 : 这是左对齐的模式 ; 2、FlowLayout 流式布局居中对齐代码示例及执行效果 居中对齐代码示例 : import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame new Frame(AWT 界面编程);// 创建流式布局// 布局中的组件从左到右进行排列// 水平间隔 10 像素, 垂直间隔 10 像素FlowLayout flowLayout new FlowLayout(FlowLayout.CENTER, 10, 10);// Frame 容器设置流式布局frame.setLayout(flowLayout);frame.setBounds(0, 0, 800, 500);// 添加多个组件for (int i 0; i 50; i ) {Button button new Button(按钮 i);frame.add(button);}frame.setVisible(true);} }执行效果 : 2、FlowLayout 流式布局右对齐代码示例及执行效果 代码示例 : import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame new Frame(AWT 界面编程);// 创建流式布局// 布局中的组件从左到右进行排列// 水平间隔 10 像素, 垂直间隔 10 像素FlowLayout flowLayout new FlowLayout(FlowLayout.RIGHT, 10, 10);// Frame 容器设置流式布局frame.setLayout(flowLayout);frame.setBounds(0, 0, 800, 500);// 添加多个组件for (int i 0; i 50; i ) {Button button new Button(按钮 i);frame.add(button);}frame.setVisible(true);} }执行效果 : 七、BorderLayout 布局 BorderLayout 布局 将 Container 容器 分割成 5 个部分 , 分别是 : WESTNORTHEASTSOUTHCENTER 每个部分的位置如下图所示 : 修改 使用了 BorderLayout 布局 的 Container 容器的大小时 : 水平调整 : NORTH , SOUTH , CENTER 部分可以进行 水平调整 ;垂直调整 : EAST , WEST , CENTER 部分可以进行 垂直调整 ; 也就是说 , 调整容器大小时 , NORTH 和 SOUTH 的高度是不变的 , 宽度可以改变 ;EAST 和 WEST 的宽度是不变的 , 高度可以改变 ;CENTER 区域的宽高都可以改变 ; 向 BorderLayout 布局 中添加 Component 组件 : 组件添加区域 : 可以 指定添加的区域 , 如果没有指定则默认添加到 CENTER 区域 ;组件覆盖 : 向同一个区域添加组件 , 后放入的组件会覆盖先放入的组件 ; 八、BorderLayout 构造函数 API BorderLayout 构造函数 API : BorderLayout() : 创建 BorderLayout 布局管理器 , 使用 默认的 水平间距 和 垂直间距 ; /*** 构造一个新的边框布局* 组件之间无间隙。*/public BorderLayout() {this(0, 0);}BorderLayout() : 创建 BorderLayout 布局管理器 , 使用 指定的 水平间距 和 垂直间距 ; /*** 构造具有指定间距的边框布局* 组件之间。* 水平间隔由codehgap/code指定* 垂直间隔由codevgap/code指定。* param hgap 水平间隙。* param vgap 垂直间隙。*/public BorderLayout(int hgap, int vgap) {this.hgap hgap;this.vgap vgap;}九、BorderLayout 代码示例 1、BorderLayout 基本用法代码示例 代码示例 : import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame new Frame(AWT 界面编程);// 创建 BorderLayout 布局管理器// 指定水平间距 50, 垂直间距 30BorderLayout borderLayout new BorderLayout(50, 30);// Frame 容器设置流式布局frame.setLayout(borderLayout);// 添加多个组件frame.add(new Button(WEST), BorderLayout.WEST);frame.add(new Button(NORTH), BorderLayout.NORTH);frame.add(new Button(EAST), BorderLayout.EAST);frame.add(new Button(SOUTH), BorderLayout.SOUTH);frame.add(new Button(CENTER), BorderLayout.CENTER);// 自定设置合适的大小frame.pack();frame.setVisible(true);} }执行效果 : 拖动改变该窗口的大小 , 发现 NORTH 和 SOUTH 的高度是不变的 , EAST 和 WEST 的宽度是不变的 ; 2、BorderLayout 区域占用代码示例 代码示例 : import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame new Frame(AWT 界面编程);// 创建 BorderLayout 布局管理器// 指定水平间距 50, 垂直间距 30BorderLayout borderLayout new BorderLayout(50, 30);// Frame 容器设置流式布局frame.setLayout(borderLayout);// 添加多个组件// 如果不向 EAST 和 WEST 中添加组件, 则该区域会被其它区域占用// 这里是被 CENTER 区域占用frame.add(new Button(NORTH), BorderLayout.NORTH);frame.add(new Button(SOUTH), BorderLayout.SOUTH);frame.add(new Button(CENTER), BorderLayout.CENTER);// 自定设置合适的大小frame.pack();frame.setVisible(true);} }执行结果 : 3、BorderLayout 同一区域显示多个组件代码示例 代码示例 : import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame new Frame(AWT 界面编程);// 创建 BorderLayout 布局管理器// 指定水平间距 50, 垂直间距 30BorderLayout borderLayout new BorderLayout(50, 30);// Frame 容器设置流式布局frame.setLayout(borderLayout);// 添加多个组件// 如果不向 EAST 和 WEST 中添加组件, 则该区域会被其它区域占用// 这里是被 CENTER 区域占用frame.add(new Button(NORTH), BorderLayout.NORTH);frame.add(new Button(SOUTH), BorderLayout.SOUTH);frame.add(new Button(CENTER), BorderLayout.CENTER);// 向默认区域添加多个组件Panel panel new Panel();panel.add(new Button(按钮1));panel.add(new Button(按钮2));frame.add(panel);// 自定设置合适的大小frame.pack();frame.setVisible(true);} }执行结果 : 十、GridLayout 网格布局 GridLayout 网格布局管理器 可以将 当前的 Container 容器 划分成 网格 , 每个网格 区域 相同 ; 向 使用了 GridLayout 网格布局管理器 的 Container 容器 中添加 Component 组件时 , 默认的添加顺序是 从左到右 , 从上到下 ; 放置在 GridLayout 网格中的组件 , 组件的大小由网格的区域大小决定 , 默认情况下 组件会填充满所在的单个网格区域 ; 十一、GridLayout 构造函数 GridLayout 构造函数 : GridLayout() : 单行网格布局 ; /*** 创建一个默认为每个组件一列的网格布局* 在单行中。* since JDK1.1*/public GridLayout() {this(1, 0, 0, 0);}GridLayout(int rows, int cols) : 网格布局 中的 行数 和 列数 使用指定的值 , 网格的 水平 和 垂直 间隔使用默认值 ; /*** 创建具有指定行数和的网格布局* 列。布局中的所有组件都被赋予相同的大小。* p* coderows/code和codecols/code中的一个(而不是两个)可以* 为零这意味着任何数量的物体都可以放置在行或列。* param rows 值为0的行表示* 任意数量的行。* param cols 列值为0表示* 任意数量的列。*/public GridLayout(int rows, int cols) {this(rows, cols, 0, 0);}GridLayout(int rows, int cols, int hgap, int vgap) : 网格布局 中的 行数 和 列数 使用指定的值 , 网格的 水平 和 垂直 间隔使用指定的值 ; /*** 创建具有指定行数和的网格布局* 列。布局中的所有组件都被赋予相同的大小。* p * 此外水平和垂直间隙设置为* 指定的值。水平间隔放置在每个之间* 列的。垂直的间隙被放置在每一个之间* 行。* p * code行/code和codecols/code中的一个(而不是两个)可以* 为零这意味着任何数量的物体都可以放置在* 行或列。* p * 所有codeGridLayout/code构造函数都遵循此构造函数。* param rows 值为0的行表示* 任意数量的行* param cols 列值为0表示* 任意数量的列* param hgap 水平间隙* param vgap 垂直差距* exception IllegalArgumentException if the value of both* coderows/code and codecols/code is* set to zero*/public GridLayout(int rows, int cols, int hgap, int vgap) {if ((rows 0) (cols 0)) {throw new IllegalArgumentException(rows and cols cannot both be zero);}this.rows rows;this.cols cols;this.hgap hgap;this.vgap vgap;}十二、GridLayout 网格布局代码示例 代码示例 : import java.awt.*;public class HelloAWT {public static void main(String[] args) {// Frame 默认的布局管理器就是 BorderLayoutFrame frame new Frame(AWT 界面编程);// 用于存放 文本框Panel panel new Panel();// 该文本框可以存放 30 个字符TextField textField new TextField(30);panel.add(textField);frame.add(panel, BorderLayout.NORTH);// 用于存放 网格布局中的组件// 需要设置该容器的 布局管理器为 网格布局管理器Panel panel2 new Panel();panel2.setLayout(new GridLayout(3, 5, 4, 4));for (int i 0; i 10; i) {panel2.add(new Button(i ));}panel2.add(new Button());panel2.add(new Button(-));panel2.add(new Button(*));panel2.add(new Button(/));panel2.add(new Button());frame.add(panel2, BorderLayout.CENTER);// 自定设置合适的大小frame.pack();frame.setVisible(true);} }执行结果 : 十三、GridBagLayout 网格包布局 GridBagLayout 网格包布局 , 是在 GridLayout 网格布局的基础上 , 单个组件可以占用多个网格 , 占用的多个网格的大小形状也可以任意设置 , 每个组件都可以占用多行和多列的网格 , 即 m x n 大小的网格 , 如 : 占用 1 x 2 的网格 , 占用 3 x 4 的网格 ; 如果 GridBagLayout 网格包布局所在的 窗口 大小改变 , 对应的 网格 也会被 拉伸或压缩 ; 向 使用 GridBagLayout 网格包布局 的 Container 容器中 添加 Component 组件时 , 需要指定添加的 组件具体占的 网格 行列数 ; 可借助 GridBagConstaints 配置 组件 的 行列大小 ; 十四、CardLayout 卡片布局 CardLayout 卡片布局 中 , Container 容器中 每个组件都相当于一张卡片 , 这些卡片平时都折叠起来 , 只有 最上面的卡片中的组件才是可见的 , 其它组件都不可见 ; 十五、CardLayout 卡片布局 API CardLayout 卡片布局 API : CardLayout() : 创建 默认 的卡片布局管理器 ; /*** 创建一个空白大小为0的新卡片布局。*/public CardLayout() {this(0, 0);}CardLayout(int hgap, int vgap) : 创建 指定 水平间隙 和 垂直间隙 的 卡片布局管理器 ; /*** 创建具有指定水平和的新卡片布局* 垂直差异。水平的空隙放在左边和* 正确的边缘。垂直的缝隙位于顶部和底部* 边缘。* param hgap 水平间隙。卡片与左右两边的间距* param vgap 垂直间隙。卡片与上下两边的间距*/public CardLayout(int hgap, int vgap) {this.hgap hgap;this.vgap vgap;}void first(Container parent) : 显示 目标容器 中的 第一张卡片 ; /*** 翻转到容器的第一张卡片。* param parent 要在其中进行布局的父容器* see java.awt.CardLayout#last*/public void first(Container parent)void last(Container parent) : 显示 目标容器 中的 最后一张卡片 ; /*** 翻转到容器的最后一张牌。* param parent 要在其中进行布局的父容器* see java.awt.CardLayout#first*/public void last(Container parent)void previous(Container parent) : 显示 目标容器 中的 前一张卡片 ; /*** 翻转到指定容器的上一张卡片。如果* 目前可见的卡片是第一张这个方法翻到* 布局的最后一张牌。* param parent 要在其中进行布局的父容器* see java.awt.CardLayout#next*/public void previous(Container parent)void next(Container parent) : 显示 目标容器 中的 后一张卡片 ; /*** 翻转到指定容器的下一张牌。如果* 目前可见的卡片是最后一张此方法翻到* 布局中的第一张牌。* param parent 要在其中进行布局的父容器* see java.awt.CardLayout#previous*/public void next(Container parent)void show(Container parent, String name) : 显示 目标容器 中的 指定名称的 卡片 ; /*** 控件跳转到添加到此布局中的组件* 指定codename/code使用codeaddLayoutComponent/code。* 如果不存在这样的组件那么什么也不会发生。* param parent 要在其中进行布局的父容器* param name 组件名称* see java.awt.CardLayout#addLayoutComponent(java.awt.Component, java.lang.Object)*/public void show(Container parent, String name)十六、CardLayout 卡片布局代码示例 代码示例 : import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class HelloAWT {public static void main(String[] args) {// I. Frame 默认的布局管理器就是 BorderLayoutFrame frame new Frame(AWT 界面编程);// II. 设置存储卡片布局的 Panel// 该容器设置 卡片布局管理器Panel panel new Panel();CardLayout cardLayout new CardLayout();panel.setLayout(cardLayout);// 向 Panel 中添加多个 卡片组件for (int i 0; i 5; i) {panel.add( i, new Button( i));}// 将 Panel 放到 Frame 窗口的默认区域 , 也就是 Center 区域frame.add(panel);// III. 创建 存放 按钮的 Panel 容器Panel panel2 new Panel();Button b0 new Button(first);Button b1 new Button(last);Button b2 new Button(previous);Button b3 new Button(next);Button b4 new Button(second);// 设置按钮事件监听器ActionListener listener new ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {// 获取按钮文字String text e.getActionCommand();switch (text) {case first:cardLayout.first(panel);break;case last:cardLayout.last(panel);break;case previous:cardLayout.previous(panel);break;case next:cardLayout.next(panel);break;case second:cardLayout.show(panel, 2);break;}}};// 为按钮设置监听器b0.addActionListener(listener);b1.addActionListener(listener);b2.addActionListener(listener);b3.addActionListener(listener);b4.addActionListener(listener);// 将按钮设置到布局中panel2.add(b0);panel2.add(b1);panel2.add(b2);panel2.add(b3);panel2.add(b4);// 将按钮布局添加到 Frame 窗口中// 放在 SOUTH 区域frame.add(panel2, BorderLayout.SOUTH);// IV. 自定设置合适的大小frame.pack();frame.setVisible(true);} }执行效果 : 拖动放大查看效果 : 点击 last 按钮 : 点击 previous 按钮 : 点击 next 按钮 : 点击 second 按钮 : 十七、BoxLayout 布局 BoxLayout 布局 不是 AWT 中的布局 , 而是 Swing 中引入的 ; 在 BoxLayout 布局 中 , 可以 在 垂直 和 水平 两个方向上 摆放 Component 组件 ; 十八、BoxLayout 布局 API BoxLayout 布局 API : BoxLayout(Container target, int axis) : 为 Container target 组件 配置本 BoxLayout 布局管理器 , 该布局管理器会 按照指定的方向进行排列 , 垂直 或 水平方向 ; /*** 创建布局管理器该管理器将沿* 给定的轴。** param target 需要布置的容器* param axis 沿轴线布置组件。可以是其中之一:* codeBoxLayout.X_AXIS/code,* codeBoxLayout.Y_AXIS/code,* codeBoxLayout.LINE_AXIS/code or* codeBoxLayout.PAGE_AXIS/code** exception AWTError if the value of codeaxis/code is invalid*/ConstructorProperties({target, axis})public BoxLayout(Container target, int axis)十九、BoxLayout 布局代码示例 1、BoxLayout 布局垂直排列代码示例 代码示例 : import javax.swing.*; import java.awt.*; import java.beans.ConstructorProperties;public class HelloAWT {public static void main(String[] args) {// I. Frame 默认的布局管理器就是 BorderLayoutFrame frame new Frame(AWT 界面编程);// II. 为 Frame 配置 BoxLayout 布局管理器// 组件垂直摆放BoxLayout boxLayout new BoxLayout(frame, BoxLayout.Y_AXIS);// 为容器设置布局管理器frame.setLayout(boxLayout);frame.add(new Button(按钮 1));frame.add(new Button(按钮 2));// III. 自定设置合适的大小frame.pack();frame.setVisible(true);} }执行效果 : 拖动放大后的效果 : 2、BoxLayout 布局水平排列代码示例 代码示例 : import javax.swing.*; import java.awt.*; import java.beans.ConstructorProperties;public class HelloAWT {public static void main(String[] args) {// I. Frame 默认的布局管理器就是 BorderLayoutFrame frame new Frame(AWT 界面编程);// II. 为 Frame 配置 BoxLayout 布局管理器// 组件垂直摆放BoxLayout boxLayout new BoxLayout(frame, BoxLayout.Y_AXIS);// 为容器设置布局管理器frame.setLayout(boxLayout);frame.add(new Button(按钮 1));frame.add(new Button(按钮 2));// III. 自定设置合适的大小frame.pack();frame.setVisible(true);} }执行效果 : 放大后的效果 : 二十、Box 容器 为了 方便使用 BoxLayout 布局 , Swing 中提供了 Box 容器 ; Box 容器 默认的 布局管理器 就是 BoxLayout ; 通过在 Box 容器构造函数中传入不同的参数 , 可以直接创建 水平排列组件的 Box 容器 或 垂直排列组件的 Box 容器 ; Box 容器类似于 Android 中的 LinearLayout ; 二十一、Box 容器 API Box 容器 API : static Box createHorizontalBox() : 创建 水平排列组件的 Box 容器 ; /*** 创建一个显示其组件的codeBox/code* 从左到右。如果你想要一个codeBox/code那* 的组件方向* codeBox/code使用构造函数并传入* codeBoxLayout.LINE_AXIS/code,例如:* pre* Box lineBox new Box(BoxLayout.LINE_AXIS);* /pre** return the box*/public static Box createHorizontalBox() {return new Box(BoxLayout.X_AXIS);}static Box createVerticalBox() : 创建 垂直排列组件的 Box 容器 ; /*** 创建一个显示其组件的codeBox/code* 从上到下。如果你想要一个codeBox/code那* 的组件方向* codeBox/code使用构造函数并传入* codeBoxLayout.PAGE_AXIS/code, eg:* pre* Box lineBox new Box(BoxLayout.PAGE_AXIS);* /pre** return the box*/public static Box createVerticalBox() {return new Box(BoxLayout.Y_AXIS);}二十二、Box 容器代码示例 代码示例 : import javax.swing.*; import java.awt.*;public class HelloAWT {public static void main(String[] args) {// I. Frame 默认的布局管理器就是 BorderLayoutFrame frame new Frame(AWT 界面编程);// III. 设置主要布局// 创建第一组按钮Box box Box.createHorizontalBox();box.add(new Button(水平按钮 1));box.add(new Button(水平按钮 2));// 创建第二组按钮Box box2 Box.createVerticalBox();box2.add(new Button(垂直按钮 1));box2.add(new Button(垂直按钮 2));// 创建存放两组按钮的 BoxBox box3 Box.createVerticalBox();box3.add(box);box3.add(box2);// 将存放两组按钮的 Box 容器放入 Frame 窗口frame.add(box3);// III. 自定设置合适的大小frame.pack();frame.setVisible(true);} }执行结果 : 改变窗口大小 : 二十三、Box 容器中添加分割 代码示例 : import javax.swing.*; import java.awt.*;public class HelloAWT {public static void main(String[] args) {// I. Frame 默认的布局管理器就是 BorderLayoutFrame frame new Frame(AWT 界面编程);// III. 设置主要布局// 创建第一组按钮Box box Box.createHorizontalBox();box.add(new Button(水平按钮 1));// 随窗口大小改变而改变box.add(Box.createHorizontalGlue());box.add(new Button(水平按钮 2));// 固定分割值, 不随窗口大小改变而改变box.add(Box.createHorizontalStrut(30));box.add(new Button(水平按钮 3));// 创建第二组按钮Box box2 Box.createVerticalBox();box2.add(new Button(垂直按钮 1));// 随窗口大小改变而改变box2.add(Box.createVerticalGlue());box2.add(new Button(垂直按钮 2));// 固定分割值, 不随窗口大小改变而改变box2.add(Box.createVerticalStrut(30));box2.add(new Button(垂直按钮 3));// 创建存放两组按钮的 BoxBox box3 Box.createVerticalBox();box3.add(box);box3.add(box2);// 将存放两组按钮的 Box 容器放入 Frame 窗口frame.add(box3);// III. 自定设置合适的大小frame.pack();frame.setVisible(true);} }执行结果 : 改变窗口大小后的效果 :
http://www.w-s-a.com/news/323155/

相关文章:

  • 百度微建站access如何与网站连接数据库
  • ppt素材免费网站网站正能量晚上免费软件
  • 个人淘宝客网站如何备案搭建一个平台要多少钱
  • nginx 网站建设淘客网站怎么做首页
  • 网站制作的基本步骤是手机网站建设 新闻
  • 水墨 网站源码工装
  • 任丘网站建设服务网站 建设原则
  • 长沙做一个网站要多少钱网站底部备案代码
  • wordpress构建自定义设置页面seo培训学什么
  • 延安有哪些做网站的公司如何建设网站?
  • 网站建设者属于广告经营者吗网站管理程序
  • 网站内容优化方法深圳市宝安区怎么样
  • 视频网站开发视频公司网站制作多少钱
  • 单页简洁手机网站模板购物软件
  • 素材网站官网低价网站建设费用预算
  • 苏州网站设计kgwl个人网站有什么外国广告做
  • 浙江省网站建设报价简单网站开发工具
  • 物流网站的建设wordpress电视直播插件下载
  • 简述网站开发流程青岛做网站建设价格低
  • 网站开发的业务需求分析杭州推广公司
  • 网站建设技术实现难点app开发需要哪些软件
  • 响水建设局网站做网站需要会哪些知识
  • 企业制作企业网站个人网站可以做百度竞价
  • 做网站找投资人wordpress 5 主题教程
  • 做国外网站汇款用途是什么wordpress图片主题晨曦
  • 网站设计跟网站开发区别为什么网站需要维护
  • m 的手机网站怎么做网络推广方式和方法
  • wordpress图片自动轮播插件seo门户网站建设
  • 制作商业网站传奇网页游戏排名
  • 网站免费推广方案长沙房地产网站设计