java:佈局方法(流佈局)
流佈局
一、簡單說明
流佈局簡單引導。窗體內的元件,比如:按鈕,會按順序從第一行開始由左往右排列,當窗體內的第一行填不下時,便繼續從下一行由左往右排列,以此類推,直到最後元件全部排列完為止。
- 當窗體內的元件沒填滿一行時,如下:
· - 當窗體第一行填不下時,繼續填第二行,以此類推,直到填完為止。如下:
二、流程圖
- 元件:比如按鈕,標籤等,後面原始碼則用按鈕來做例子。
- 這裡流佈局的方法,則是對元件(按鈕)進行排列。
- 此博文記錄偏向於流佈局的相關內容,若需要再多瞭解一些窗體、容器、元件的相關知識,可以參考往常的博文。
三、關鍵程式碼
c.setLayout(new FlowLayout(A))
- A可以為空,即預設情況,也可以新增其他條件。以下詳細說明:
四、流佈局的幾個方法
- 注意:以下的原始碼A、B、C、D內容相同,只是在指定方法需要時,而註釋掉了幾行程式碼,只使用所用方法的相關程式碼。
(一)A為“空”(無內容)
當程式碼c.setLayout(new FlowLayout(A))
中的A為空,也就是什麼都沒有時。流佈局的佈局方式為:窗體內的元件從左到右排列,元件的整體則居中。原始碼A,如下:
1.原始碼A
/**內容:
流佈局
*/
import java.awt.Container;// 容器
import java.awt.FlowLayout;// 流佈局
import javax.swing.*;// 窗體
class Demo extends JFrame{
public Demo(){
setBounds(100,80,500,400);// 確定窗體座標、寬高;Bounds(邊界)
// default(預設值);operation(計算)
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗體點選×停止執行
// content(目錄);pane(邊;窗格)
Container c=getContentPane();// 獲取容器
// Layout(佈局);Flow(流動)
// 設定流佈局放於容器中
c.setLayout(new FlowLayout());// 情況一:預設情況;元件(按鈕)排列順序從左到右,居中
// c.setLayout(new FlowLayout(FlowLayout.LEFT));// 情況二:元件排列順序從左到右,靠左
// c.setLayout(new FlowLayout(FlowLayout.RIGHT));// 情況三:元件排列順序從左到右,靠右
// c.setLayout(new FlowLayout(FlowLayout.LEFT,40,30));// 情況四:元件排列順序從左到右,靠左;兩元件水平間距、上下間距(畫素)
// 用for迴圈新增10個按鈕
for(int i_1=1;i_1<11;i_1++){
c.add(new JButton("按鈕"+i_1));
}
setVisible(true);// 是否可見
}
public static void main(String[] args){
new Demo();
}
}
2.原始碼A執行效果
(二)A為“FlowLayout.LEFT”
當程式碼c.setLayout(new FlowLayout(A))
中的A為 FlowLayout.LEFT
時,流佈局的佈局方式為:窗體內的元件從左到右排列,元件整體則靠左。原始碼B,如下:
1.原始碼B
/**內容:
流佈局
*/
import java.awt.Container;// 容器
import java.awt.FlowLayout;// 流佈局
import javax.swing.*;// 窗體
class Demo extends JFrame{
public Demo(){
setBounds(100,80,500,400);// 確定窗體座標、寬高;Bounds(邊界)
// default(預設值);operation(計算)
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗體點選×停止執行
// content(目錄);pane(邊;窗格)
Container c=getContentPane();// 獲取容器
// Layout(佈局);Flow(流動)
// 設定流佈局放於容器中
// c.setLayout(new FlowLayout());// 情況一:預設情況;元件(按鈕)排列順序從左到右,居中
c.setLayout(new FlowLayout(FlowLayout.LEFT));// 情況二:元件排列順序從左到右,靠左
// c.setLayout(new FlowLayout(FlowLayout.RIGHT));// 情況三:元件排列順序從左到右,靠右
// c.setLayout(new FlowLayout(FlowLayout.LEFT,40,30));// 情況四:元件排列順序從左到右,靠左;兩元件水平間距、上下間距(畫素)
// 用for迴圈新增10個按鈕
for(int i_1=1;i_1<11;i_1++){
c.add(new JButton("按鈕"+i_1));
}
setVisible(true);// 是否可見
}
public static void main(String[] args){
new Demo();
}
}
2.原始碼B執行效果
(三)A為“FlowLayout.RIGHT”
當程式碼c.setLayout(new FlowLayout(A))
中的A為 FlowLayout.RIGHT
時,流佈局的佈局方式為:窗體內的元件從左到右排列,元件整體則靠右。原始碼C,如下:
1.原始碼C
/**內容:
流佈局
*/
import java.awt.Container;// 容器
import java.awt.FlowLayout;// 流佈局
import javax.swing.*;// 窗體
class Demo extends JFrame{
public Demo(){
setBounds(100,80,500,400);// 確定窗體座標、寬高;Bounds(邊界)
// default(預設值);operation(計算)
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗體點選×停止執行
// content(目錄);pane(邊;窗格)
Container c=getContentPane();// 獲取容器
// Layout(佈局);Flow(流動)
// 設定流佈局放於容器中
// c.setLayout(new FlowLayout());// 情況一:預設情況;元件(按鈕)排列順序從左到右,居中
// c.setLayout(new FlowLayout(FlowLayout.LEFT));// 情況二:元件排列順序從左到右,靠左
c.setLayout(new FlowLayout(FlowLayout.RIGHT));// 情況三:元件排列順序從左到右,靠右
// c.setLayout(new FlowLayout(FlowLayout.LEFT,40,30));// 情況四:元件排列順序從左到右,靠左;兩元件水平間距、上下間距(畫素)
// 用for迴圈新增10個按鈕
for(int i_1=1;i_1<11;i_1++){
c.add(new JButton("按鈕"+i_1));
}
setVisible(true);// 是否可見
}
public static void main(String[] args){
new Demo();
}
}
2.原始碼C執行效果
(四)A為“FlowLayout.LEFT,40,30”
當程式碼c.setLayout(new FlowLayout(A))
中的A為 FlowLayout.LEFT,40,30
時,流佈局的佈局方式為:窗體內的元件從左到右排列,元件整體則靠左,元件之間的水平間距為40畫素,豎直間距為30畫素。對於這裡例子的40、30畫素可以根據自己需要,調整成其他數值的畫素。原始碼D,如下:
1.原始碼D
/**內容:
流佈局
*/
import java.awt.Container;// 容器
import java.awt.FlowLayout;// 流佈局
import javax.swing.*;// 窗體
class Demo extends JFrame{
public Demo(){
setBounds(100,80,500,400);// 確定窗體座標、寬高;Bounds(邊界)
// default(預設值);operation(計算)
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗體點選×停止執行
// content(目錄);pane(邊;窗格)
Container c=getContentPane();// 獲取容器
// Layout(佈局);Flow(流動)
// 設定流佈局放於容器中
// c.setLayout(new FlowLayout());// 情況一:預設情況;元件(按鈕)排列順序從左到右,居中
// c.setLayout(new FlowLayout(FlowLayout.LEFT));// 情況二:元件排列順序從左到右,靠左
// c.setLayout(new FlowLayout(FlowLayout.RIGHT));// 情況三:元件排列順序從左到右,靠右
c.setLayout(new FlowLayout(FlowLayout.LEFT,40,30));// 情況四:元件排列順序從左到右,靠左;兩元件水平間距、上下間距(畫素)
// 用for迴圈新增10個按鈕
for(int i_1=1;i_1<11;i_1++){
c.add(new JButton("按鈕"+i_1));
}
setVisible(true);// 是否可見
}
public static void main(String[] args){
new Demo();
}
}
2.原始碼D執行效果
五、結語
記錄一事本可以粗概而論,但我還是決定分別記錄不同情況下的原始碼以及對應的執行效果。統一而論的話,怕混淆,以及往後的不知如何銜接。總之,我記錄的內容還是儘可能詳細一些,多耗費一些時間也沒關係。
六、定位日期
2020.11.3;23:13
相關文章
- flutter瀑布流佈局Flutter
- css佈局方法CSS
- 原生 js 實現瀑布流佈局、React 版本的瀑布流佈局元件JSReact元件
- css佈局-float佈局CSS
- CSS佈局 --- 居中佈局CSS
- qt 佈局---表單佈局QT
- 居中佈局、三欄佈局
- 網頁佈局方法網頁
- 淺析瀑布流佈局原理
- jQuery實現瀑布流佈局jQuery
- Bootstrap實戰 - 瀑布流佈局boot
- CSS 佈局之水平居中佈局CSS
- 彈性佈局(伸縮佈局)
- 浮動佈局 和 flex佈局Flex
- CSS佈局之三欄佈局CSS
- CSS佈局 --- 自適應佈局CSS
- CSS佈局 --- 等寬&等高佈局CSS
- [開發教程]第6講:Bootstrap巢狀佈局與流動佈局boot巢狀
- CSS經典佈局——聖盃佈局與雙飛翼佈局CSS
- CSS佈局–聖盃佈局和雙飛翼佈局以及使用Flex實現聖盃佈局CSSFlex
- 網頁佈局------幾種佈局方式網頁
- dispaly的Grid佈局與Flex佈局Flex
- css佈局系列1——盒模型佈局CSS模型
- CSS 三欄佈局之聖盃佈局和雙飛翼佈局CSS
- CSS3 column 瀑布流佈局CSSS3
- flex彈性佈局 響應式佈局Flex
- 聖盃佈局和雙飛翼佈局
- 三欄佈局之自適應佈局
- 移動佈局基礎之 流式佈局
- 聖盃佈局與雙飛翼佈局
- CSS 兩欄佈局和三欄佈局CSS
- 雙飛翼佈局和聖盃佈局
- 路徑佈局-基於數學函式的檢視佈局方法函式
- grid佈局
- CSS佈局CSS
- Flex佈局Flex
- 表格佈局
- layout佈局