中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

上海網站開發(fā)建優(yōu)秀的軟文廣告案例

上海網站開發(fā)建,優(yōu)秀的軟文廣告案例,網站建設公司 提成,嘉興網站制作案例文章目錄 一、布局管理器引入二、布局管理器提高程序的適配性三、LayoutManager 布局管理器類四、FlowLayout 流式布局五、FlowLayout 流式布局 API六、FlowLayout 流式布局代碼示例1、FlowLayout 流式布局左對齊代碼示例及執(zhí)行效果2、FlowLayout 流式布局居中對齊代碼示例及執(zhí)…

文章目錄

  • 一、布局管理器引入
  • 二、布局管理器提高程序的適配性
  • 三、LayoutManager 布局管理器類
  • 四、FlowLayout 流式布局
  • 五、FlowLayout 流式布局 API
  • 六、FlowLayout 流式布局代碼示例
    • 1、FlowLayout 流式布局左對齊代碼示例及執(zhí)行效果
    • 2、FlowLayout 流式布局居中對齊代碼示例及執(zhí)行效果
    • 2、FlowLayout 流式布局右對齊代碼示例及執(zhí)行效果
  • 七、BorderLayout 布局
  • 八、BorderLayout 構造函數 API
  • 九、BorderLayout 代碼示例
    • 1、BorderLayout 基本用法代碼示例
    • 2、BorderLayout 區(qū)域占用代碼示例
    • 3、BorderLayout 同一區(qū)域顯示多個組件代碼示例
  • 十、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 布局管理器 可以根據不同的操作系統(tǒng) , 自動調整組件的位置和大小 ;





三、LayoutManager 布局管理器類



LayoutManager 布局管理器類 :

  • LayoutManager 接口
    • GridLayout 網格布局
    • FlowLayout 流式布局
  • LayoutManager2 接口
    • CardLayout 卡片布局
    • GridBagLayout 網個包布局
    • BorderLayout 邊框布局

不同的布局管理器 , 對多個組件的展示效果不同 ;





四、FlowLayout 流式布局



FlowLayout 流式布局 中 , 組件 按照某個方向進行排列 , 如 :

  • 從左到右
  • 從右到左
  • 從中間到兩邊

如果 遇到障礙 或者 走到界面邊界 ,

返回到開始位置 , 在下一行從頭繼續(xù)按照原方向進行排列 ;


如 : 下面的布局就是從左向右的流式布局 , 將 6 個組件放在 FlowLayout 流式布局中 ,
1 , 2 , 3 組件放入后 , 再 放入 4 組件 , 發(fā)現第 1 排位置不夠了 , 遇到障礙 ,
此時折 返回左側 , 另起一行 , 在第 2 排繼續(xù)從左到右排列 ;

在這里插入圖片描述





五、FlowLayout 流式布局 API



FlowLayout 構造函數 :

  • FlowLayout() 構造函數 : 使用 默認的 對齊方式 , 默認的 垂直間距 和 水平間距 , 創(chuàng)建流式布局 ;
    /*** 構造一個新的<code>FlowLayout</code>,具有居中對齊和* 默認水平和垂直間隔為5單元。*/public FlowLayout() {this(CENTER, 5, 5);}
  • FlowLayout(int align) 構造函數 : 使用 指定的 對齊方式 , 默認的 垂直間距 和 水平間距 , 創(chuàng)建流式布局 ;
    /*** 構造一個新的<code>FlowLayout</code>* 對齊和默認的5單元水平和垂直差距。* 對齊參數的值必須為之一* <code>FlowLayout.LEFT</code>, <code>FlowLayout.RIGHT</code>,* <code>FlowLayout.CENTER</code>, <code>FlowLayout.LEADING</code>,* or <code>FlowLayout.TRAILING</code>.* @param align 對齊值*/public FlowLayout(int align) {this(align, 5, 5);}
  • FlowLayout(int align, int hgap, int vgap) 構造函數 : 使用 指定的 對齊方式 , 指定的 垂直間距 和 水平間距 , 創(chuàng)建流式布局 ;
    /*** 使用指定的對齊方式創(chuàng)建一個新的流布局管理器* 以及指示的水平和垂直間隙。* <p>* 對齊參數的值必須為之一* <code>FlowLayout.LEFT</code>, <code>FlowLayout.RIGHT</code>,* <code>FlowLayout.CENTER</code>, <code>FlowLayout.LEADING</code>,* or <code>FlowLayout.TRAILING</code>.* @param      align   對齊值* @param      hgap    各組件之間的水平間隙*                     在分量和*                     <code>Container</code>的邊界* @param      vgap    組件之間的垂直間隙*                     在分量和*                     <code>Container</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 流式布局左對齊代碼示例及執(zhí)行效果


代碼示例 :

import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame = new Frame("AWT 界面編程");// 創(chuàng)建流式布局// 布局中的組件從左到右進行排列// 水平間隔 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);}
}

執(zhí)行結果 : 這是左對齊的模式 ;

在這里插入圖片描述


2、FlowLayout 流式布局居中對齊代碼示例及執(zhí)行效果


居中對齊代碼示例 :

import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame = new Frame("AWT 界面編程");// 創(chuàng)建流式布局// 布局中的組件從左到右進行排列// 水平間隔 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);}
}

執(zhí)行效果 :

在這里插入圖片描述


2、FlowLayout 流式布局右對齊代碼示例及執(zhí)行效果


代碼示例 :

import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame = new Frame("AWT 界面編程");// 創(chuàng)建流式布局// 布局中的組件從左到右進行排列// 水平間隔 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);}
}

執(zhí)行效果 :

在這里插入圖片描述





七、BorderLayout 布局



BorderLayout 布局Container 容器 分割成 5 個部分 , 分別是 :

  • WEST
  • NORTH
  • EAST
  • SOUTH
  • CENTER

每個部分的位置如下圖所示 :

在這里插入圖片描述

修改 使用了 BorderLayout 布局 的 Container 容器的大小時 :

  • 水平調整 : NORTH , SOUTH , CENTER 部分可以進行 水平調整 ;
  • 垂直調整 : EAST , WEST , CENTER 部分可以進行 垂直調整 ;

也就是說 , 調整容器大小時 ,

  • NORTH 和 SOUTH 的高度是不變的 , 寬度可以改變 ;
  • EAST 和 WEST 的寬度是不變的 , 高度可以改變 ;
  • CENTER 區(qū)域的寬高都可以改變 ;

向 BorderLayout 布局 中添加 Component 組件 :

  • 組件添加區(qū)域 : 可以 指定添加的區(qū)域 , 如果沒有指定則默認添加到 CENTER 區(qū)域 ;
  • 組件覆蓋 : 向同一個區(qū)域添加組件 , 后放入的組件會覆蓋先放入的組件 ;




八、BorderLayout 構造函數 API



BorderLayout 構造函數 API :

  • BorderLayout() : 創(chuàng)建 BorderLayout 布局管理器 , 使用 默認的 水平間距 和 垂直間距 ;
    /*** 構造一個新的邊框布局* 組件之間無間隙。*/public BorderLayout() {this(0, 0);}
  • BorderLayout() : 創(chuàng)建 BorderLayout 布局管理器 , 使用 指定的 水平間距 和 垂直間距 ;
    /*** 構造具有指定間距的邊框布局* 組件之間。* 水平間隔由<code>hgap</code>指定* 垂直間隔由<code>vgap</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 界面編程");// 創(chuàng)建 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);}
}

執(zhí)行效果 :

在這里插入圖片描述

拖動改變該窗口的大小 , 發(fā)現 NORTH 和 SOUTH 的高度是不變的 , EAST 和 WEST 的寬度是不變的 ;
在這里插入圖片描述


2、BorderLayout 區(qū)域占用代碼示例


代碼示例 :

import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame = new Frame("AWT 界面編程");// 創(chuàng)建 BorderLayout 布局管理器// 指定水平間距 50, 垂直間距 30BorderLayout borderLayout = new BorderLayout(50, 30);// Frame 容器設置流式布局frame.setLayout(borderLayout);// 添加多個組件// 如果不向 EAST 和 WEST 中添加組件, 則該區(qū)域會被其它區(qū)域占用// 這里是被 CENTER 區(qū)域占用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);}
}

執(zhí)行結果 :
在這里插入圖片描述


3、BorderLayout 同一區(qū)域顯示多個組件代碼示例


代碼示例 :

import java.awt.*;public class HelloAWT {public static void main(String[] args) {Frame frame = new Frame("AWT 界面編程");// 創(chuàng)建 BorderLayout 布局管理器// 指定水平間距 50, 垂直間距 30BorderLayout borderLayout = new BorderLayout(50, 30);// Frame 容器設置流式布局frame.setLayout(borderLayout);// 添加多個組件// 如果不向 EAST 和 WEST 中添加組件, 則該區(qū)域會被其它區(qū)域占用// 這里是被 CENTER 區(qū)域占用frame.add(new Button("NORTH"), BorderLayout.NORTH);frame.add(new Button("SOUTH"), BorderLayout.SOUTH);frame.add(new Button("CENTER"), BorderLayout.CENTER);// 向默認區(qū)域添加多個組件Panel panel = new Panel();panel.add(new Button("按鈕1"));panel.add(new Button("按鈕2"));frame.add(panel);// 自定設置合適的大小frame.pack();frame.setVisible(true);}
}

執(zhí)行結果 :
在這里插入圖片描述





十、GridLayout 網格布局



GridLayout 網格布局管理器 可以將 當前的 Container 容器 劃分成 網格 , 每個網格 區(qū)域 相同 ;

向 使用了 GridLayout 網格布局管理器 的 Container 容器 中添加 Component 組件時 , 默認的添加順序是 從左到右 , 從上到下 ;

放置在 GridLayout 網格中的組件 , 組件的大小由網格的區(qū)域大小決定 , 默認情況下 組件會填充滿所在的單個網格區(qū)域 ;





十一、GridLayout 構造函數



GridLayout 構造函數 :

  • GridLayout() : 單行網格布局 ;
    /*** 創(chuàng)建一個默認為每個組件一列的網格布局,* 在單行中。* @since JDK1.1*/public GridLayout() {this(1, 0, 0, 0);}
  • GridLayout(int rows, int cols) : 網格布局 中的 行數 和 列數 使用指定的值 , 網格的 水平 和 垂直 間隔使用默認值 ;
    /*** 創(chuàng)建具有指定行數和的網格布局* 列。布局中的所有組件都被賦予相同的大小。* <p>* <code>rows</code>和<code>cols</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) : 網格布局 中的 行數 和 列數 使用指定的值 , 網格的 水平 和 垂直 間隔使用指定的值 ;
    /*** 創(chuàng)建具有指定行數和的網格布局* 列。布局中的所有組件都被賦予相同的大小。* < p >* 此外,水平和垂直間隙設置為* 指定的值。水平間隔放置在每個之間* 列的。垂直的間隙被放置在每一個之間* 行。* < p >* <code>行</code>和<code>cols</code>中的一個(而不是兩個)可以* 為零,這意味著任何數量的物體都可以放置在* 行或列。* < p >* 所有<code>GridLayout</code>構造函數都遵循此構造函數。* @param     rows   值為0的行表示*                   任意數量的行* @param     cols   列,值為0表示*                   任意數量的列* @param     hgap   水平間隙* @param     vgap   垂直差距* @exception   IllegalArgumentException  if the value of both*                  <code>rows</code> and <code>cols</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);}
}

執(zhí)行結果 :

在這里插入圖片描述





十三、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() : 創(chuàng)建 默認 的卡片布局管理器 ;
    /*** 創(chuàng)建一個空白大小為0的新卡片布局。*/public CardLayout() {this(0, 0);}
  • CardLayout(int hgap, int vgap) : 創(chuàng)建 指定 水平間隙 和 垂直間隙 的 卡片布局管理器 ;
    /*** 創(chuàng)建具有指定水平和的新卡片布局* 垂直差異。水平的空隙放在左邊和* 正確的邊緣。垂直的縫隙位于頂部和底部* 邊緣。* @param     hgap   水平間隙??ㄆc左右兩邊的間距* @param     vgap   垂直間隙??ㄆc上下兩邊的間距*/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) : 顯示 目標容器 中的 指定名稱的 卡片 ;
    /*** 控件跳轉到添加到此布局中的組件* 指定<code>name</code>,使用<code>addLayoutComponent</code>。* 如果不存在這樣的組件,那么什么也不會發(fā)生。* @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 窗口的默認區(qū)域 , 也就是 Center 區(qū)域frame.add(panel);// III. 創(chuàng)建 存放 按鈕的 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");// 設置按鈕事件監(jiān)聽器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;}}};// 為按鈕設置監(jiān)聽器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 區(qū)域frame.add(panel2, BorderLayout.SOUTH);// IV. 自定設置合適的大小frame.pack();frame.setVisible(true);}
}

執(zhí)行效果 :
在這里插入圖片描述

拖動放大查看效果 :

在這里插入圖片描述

點擊 last 按鈕 :

在這里插入圖片描述

點擊 previous 按鈕 :

在這里插入圖片描述

點擊 next 按鈕 :

在這里插入圖片描述

點擊 second 按鈕 :

在這里插入圖片描述





十七、BoxLayout 布局



BoxLayout 布局 不是 AWT 中的布局 , 而是 Swing 中引入的 ;

在 BoxLayout 布局 中 , 可以 在 垂直 和 水平 兩個方向上 擺放 Component 組件 ;





十八、BoxLayout 布局 API



BoxLayout 布局 API :

  • BoxLayout(Container target, int axis) : 為 Container target 組件 配置本 BoxLayout 布局管理器 , 該布局管理器會 按照指定的方向進行排列 , 垂直 或 水平方向 ;
    /*** 創(chuàng)建布局管理器,該管理器將沿* 給定的軸。** @param target  需要布置的容器* @param axis    沿軸線布置組件。可以是其中之一:*              <code>BoxLayout.X_AXIS</code>,*              <code>BoxLayout.Y_AXIS</code>,*              <code>BoxLayout.LINE_AXIS</code> or*              <code>BoxLayout.PAGE_AXIS</code>** @exception AWTError  if the value of <code>axis</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);}
}

執(zhí)行效果 :

在這里插入圖片描述

拖動放大后的效果 :

在這里插入圖片描述


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);}
}

執(zhí)行效果 :

在這里插入圖片描述

放大后的效果 :
在這里插入圖片描述





二十、Box 容器



為了 方便使用 BoxLayout 布局 , Swing 中提供了 Box 容器 ;

Box 容器 默認的 布局管理器 就是 BoxLayout ;

通過在 Box 容器構造函數中傳入不同的參數 , 可以直接創(chuàng)建 水平排列組件的 Box 容器垂直排列組件的 Box 容器 ;


Box 容器類似于 Android 中的 LinearLayout ;





二十一、Box 容器 API



Box 容器 API :

  • static Box createHorizontalBox() : 創(chuàng)建 水平排列組件的 Box 容器 ;
    /*** 創(chuàng)建一個顯示其組件的<code>Box</code>* 從左到右。如果你想要一個<code>Box</code>那* 的組件方向* <code>Box</code>使用構造函數并傳入* <code>BoxLayout.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() : 創(chuàng)建 垂直排列組件的 Box 容器 ;
    /*** 創(chuàng)建一個顯示其組件的<code>Box</code>* 從上到下。如果你想要一個<code>Box</code>那* 的組件方向* <code>Box</code>使用構造函數并傳入* <code>BoxLayout.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. 設置主要布局// 創(chuàng)建第一組按鈕Box box = Box.createHorizontalBox();box.add(new Button("水平按鈕 1"));box.add(new Button("水平按鈕 2"));// 創(chuàng)建第二組按鈕Box box2 = Box.createVerticalBox();box2.add(new Button("垂直按鈕 1"));box2.add(new Button("垂直按鈕 2"));// 創(chuàng)建存放兩組按鈕的 BoxBox box3 = Box.createVerticalBox();box3.add(box);box3.add(box2);// 將存放兩組按鈕的 Box 容器放入 Frame 窗口frame.add(box3);// III. 自定設置合適的大小frame.pack();frame.setVisible(true);}
}

執(zhí)行結果 :
在這里插入圖片描述

改變窗口大小 :
在這里插入圖片描述





二十三、Box 容器中添加分割



代碼示例 :

import javax.swing.*;
import java.awt.*;public class HelloAWT {public static void main(String[] args) {// I. Frame 默認的布局管理器就是 BorderLayoutFrame frame = new Frame("AWT 界面編程");// III. 設置主要布局// 創(chuàng)建第一組按鈕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"));// 創(chuàng)建第二組按鈕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"));// 創(chuàng)建存放兩組按鈕的 BoxBox box3 = Box.createVerticalBox();box3.add(box);box3.add(box2);// 將存放兩組按鈕的 Box 容器放入 Frame 窗口frame.add(box3);// III. 自定設置合適的大小frame.pack();frame.setVisible(true);}
}

執(zhí)行結果 :

在這里插入圖片描述

改變窗口大小后的效果 :

在這里插入圖片描述

在這里插入圖片描述

http://www.risenshineclean.com/news/46727.html

相關文章:

  • 海淀區(qū)企業(yè)網站建設公司網站設計制作
  • 北京 順義 網站制作培訓網站制作
  • 自制圖片肇慶網站快速排名優(yōu)化
  • wordpress映射新余seo
  • 視頻解析接口網站怎么做百度提交網站
  • 怎么自己做三個一網站一份完整的營銷策劃書
  • 做農產品的網站北京優(yōu)化seo排名優(yōu)化
  • 國外銷售網站怎樣建設免費長尾詞挖掘工具
  • 麗水專業(yè)網站建設哪家好抖音seo優(yōu)化
  • wordpress.conf網站seo優(yōu)化免費
  • 有沒有給做淘寶網站的中國十大網站有哪些
  • 做網站需要什么部門批準重慶seo優(yōu)化效果好
  • 濟寧做企業(yè)網站濟南網站優(yōu)化排名推廣
  • 在哪里做網站比較好十大廣告投放平臺
  • 做平臺和獨立建網站綜合型b2b電子商務平臺網站
  • 免費的素材網站網站如何做關鍵詞優(yōu)化
  • 個人網站發(fā)布怎么做優(yōu)化大師官網入口
  • 網站建設總體方案設計下載優(yōu)化大師app
  • web前端工程師職業(yè)規(guī)劃seo推廣優(yōu)化的方法
  • 公司網站建設有什么好處2345網址導航下載
  • 網站建設的公司在哪找企業(yè)推廣策略
  • 做網站犯法嗎小廣告圖片
  • 類似網站的建設西安seo網絡優(yōu)化公司
  • 網站建設個人網站佛山網絡推廣哪里好
  • 網站備案信息傳網店推廣聯(lián)盟
  • wordpress 小工具 調用seo是什么崗位
  • 山東日照建設網站微信小程序怎么開通
  • 做藥材生意的網站免費下載百度app最新版本
  • 濟南網絡廣播電視臺北京關鍵詞優(yōu)化報價
  • 域名服務器的四種類型營口seo