摘要:布局管理器也是通過構造器來創建的。流布局管理器的對齊方式如下所示。方法和方法分別獲取和設置流布局管理器中控件和控件之間的水平間距。
流布局(FlowLayout)默認的JApplet,JPanel,JScrollPane
流布局是相對比較簡單的一種布局管理器,也是最常用的布局管理器。在流布局中放置控件時,將按照控件的添加順序,依次將控件從左到右進行擺放,并且在一行的最后會進行自動換行放置 。在一行中,控件是默認居中放置的。
布局管理器也是通過構造器來創建的。流布局是通過FlowLayout 類來創建,FlowLayout類具有三種構造器。首先是無參構造器, 使用無參構造器能夠創建一個默認的以居中對齊方式,控件間水 平和垂直間距為5個像素的流布局。
FlowLayout類還具有一個需要整型參數的構造器,使用該構造器能夠創建一個指定對齊方式的流布局管理器,它的控件間水平和垂直間距仍然是默認的5個像素。流布局管理器的對齊方式如下所示。
LEFT 左對齊方式
CENTER 居中對齊方式
RIGHT 右對齊方式
LEADING 控件與容器開始邊對齊
TRAILING
構造函數:
FlowLayout(),生成一個默認的FlowLayout布局。默認情況下,組件居中,間隙為5個像素。
FlowLayout(int aligment),設定每珩的組件的對齊方式。alignment取值可以為FlowLayout.LEFT,FlowLayout.CENTER,FlowLayout.RIGHT。
FlowLayout(int aligment,int horz, int vert),設定對齊方式,并設定組件的水平間距horz和垂直間距vert,用超類Container的方法setLayout()為容器設定布局。例如,代碼setLayout(new FlowLayout())為容器設定 FlowLayout布局。將組件加入容器的方法是add(組件名)。
常用的函數:
getAlignment方法和setAlignment方法分別獲取和設置流布局管理器的對齊方式。 getHgap方法和setHgap方法分別獲取和設置流布局管理器中控件和控件之間的水平間距。getVgap方法和setVgap方法分別獲取和 設置流布局管理器中控件和控件之間的垂直間距。
import javax.swing.*; import java.awt.*; /** * Created by Chenjiabing on 2017/4/5. */ public class BuJu { public static void main(String args[]) { JFrame frame=new JFrame(); FlowLayout flowLayout=new FlowLayout(FlowLayout.LEFT); JPanel panel=new JPanel(flowLayout); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(100,100,500,400); flowLayout.setHgap(20); //設置水平間距 flowLayout.setVgap(20); //控件之間的垂直間距 for(int i=0;i<6;i++) { JButton button=new JButton("按鈕"); panel.add(button); } frame.getContentPane().add(panel); frame.setVisible(true); } }網格布局(GridLayout)
邊框布局(BorderLayout)默認的是JWindow、JFrame,JDialog網絡布局也是一種比較常見的布局管理器。使用網格布局管理器后,會將所有的控件盡量按照給出的行數和列數來排列,同時網格布局管理器也會對控件進行尺寸的調整,使所有的控件具有相同的尺寸。在網格布局中,也會盡量使使用的空間成矩形的形式來顯示。當窗體發生大小變化時,所有的空間也將自動改變大小來填充窗體。
網格布局是通過GridLayout類來創建的。GridLayout類具有三個構造器,使用無參構造器將創建具有默認行和默認列的網格布局。在創建網格布局管理器時最常用的就是具有兩個整型參數的構造器,第一個參數表示網格布局管理器的行數,第二個參數表示網格布局管理器的列數。還有一個具有四個參數的構造器,除了可以定義行數和列數外,還可以定義控件間水平間距和垂直間距。
GridLayout類中還定義了一些方法來對創建的網格布局進行操作 。getRows方法和setRows方法分別是獲取和設置網格布局的行數。getColumns方法和setColumns方法分別是獲取和設置網格布局 的列數。getHgap方法和setHgap方法分別是獲取和設置網格布局 中控件間水平間距。getVgap方法和setVgap方法分別是獲取和設 置網絡布局中的控件間垂直間距。
構造函數:
GridLayout(),生成一個單列的GridLayout布局。默認情況下,無間隙。
1. GridLayout(int row,int col),設定一個有行row和列`col的GridLayout布局。GridLayout(int row,int col,int horz,int vert),設定布局的行數和列數、組件的水平間距和垂直間距
代碼大概和上面的設置一樣,這里注意的是,網格布局是以行為基準的,如果定義的控件多了或者少了,不會改變行的數量,會根據情況改變列的數量
空布局(null)上面學習的流布局和網格布局具有很多相似的地方,但是邊框布局就和他們存在很大的不同。在使用邊框布局時,通常都會由程序員來為控件指定在容器中的位置。邊框布局將容器分為五個部分,包括東南西北中五部分。在每一個部分中只能放置一個控件 ,所以如果控件超過五個將不能完全顯示。在使用邊框布局時需 要注意的是,當容器的大小發生變化時,四周的控件是不會發生變化的,只有中間的控件將發生變化。
邊框布局是通過BorderLayout類創建的。BorderLayout類具有兩個構造器,一個是無參構造器,另一個是指定控件間間距的構造器,通常使用無參構造器來創建邊框布局管理器。
在前面將控件添加到容器中都是通過add方法,將控件作為add方法的參 數來進行添加的。但是在向邊框布局容器中添加控件時,這樣是不完全 的。在向邊框布局容器中添加控件是使用具有兩個參數的add方法。其中 第一個參數表示要添加的控件,第二個參數表示要添加到邊框布局中的 哪一個位置。邊框布局的位置表示是通過常量來表示的,具體常量如下所示
NORTH 容器頂部
SOUTH 容器底部
WEST 容器左邊
EAST 容器右邊
CENTER 容器的中央
構造函數:
BorderLayout(),生成一個默認的BorderLayout布局。默認情況下,沒有間隙。
BorderLayout(int horz,int vert),設定組件之間的水平間距和垂直間距。
注意這里還有一些常用的方法,就是設置水平和垂直的間距,上面已經贅述過了,這里就不再詳說了
空布局就是沒有使用布局管理器,在空布局的情況下將根據控件的自身信息來為控件指定位置。這就使得控件的布局更加靈活,與此同時給開發人員帶來了更大的工作量。
空布局是不需要使用類來創建的,只需要在程序指定布局管理器 為null。將控件添加到空布局容器中時,仍然是使用add方法。因 為這里使用的是空布局管理器,所以在添加控件之前,要對控件 進行設置操作。設置操作是通過setBounds方法來完成的, setBounds方法的基本語法格式如下所示。
public void setBounds(int x,int y,int width,int height);
其中x和y表示的是控件最左上側的坐標,從而也固定了該控件的 位置。width和height表示的是空間的寬度和高度,從而也指定了
控件的大小。
示例代碼:
>frame.setLayout(null);//布局管理器設置為null JLabel label = new JLabel("First Name:"); label.setBounds(20, 20, 100, 20);//四個參數分別是x,y坐標和label的寬和高 JTextField textField = new JTextField(); textField.setBounds(124, 25, 100, 20); frame.add(label); frame.add(textField);本人博客
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66979.html
摘要:包括了圖形用戶界面器件如文本框,按鈕,分隔窗格和表。按照指定布局限制添加組件。移除指定位置的組件。通常文本框用于接收用戶信息或其他文本信息的輸入。因此,組件也稱為密碼文本框。創建一個具有出事文本信息以及制定列數的文本框。 Swing 是一個為Java設計的GUI工具包。 Swing是JAVA基礎類的一部分。 Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。 S...
摘要:中的絕對布局取消布局管理器實例化一個按鈕實例化一個按鈕設置位置與大小設置位置與大小顯示窗體 Swing中的絕對布局 package jframe;import java.awt.Button;import java.awt.Container;import javax.swing.*; public class jframe extends JFrame{ /** * */ pr...
摘要:代碼演示設置容器為邊界布局管理器循環添加按鈕,并設置按鈕布局網格布局類是一個布局處理器,它以矩形網格形式對容器的組件進行布置。構造方法摘要創建具有默認值的網格布局,即每個組件占據一行一列。創建具有指定行數和列數的網格布局。 流布局:FlowLayout構造方法:FlowLayout() 構造一個新的 FlowLayout,它是居中對齊的,默認的水平和垂直間隙是 5 個單位。...
摘要:事件對象攜帶了動作發生時的相關信息,比如通過事件對象獲取按鈕的字符串,通過字符串判斷后執行不同的代碼。使用監聽器的步驟自己創建一個類使用這個類創建一個對象,用按鈕對象的添加監聽器方法添加這個對象。 ...
摘要:而與其他工具相比比如可使用來進行頁面繪制。對于參數可以使用基本類型來表示。如下所示實際上其原理就是使用中的來實現類似的還有。當然對于復雜的情況建議還是使用之類或其他商業工具完成。 原文地址: http://blog.52sox.com/Java-us... 不得不說Swing是Java中GUI編程中1個不錯的包,但是手動編寫Swing是1個很繁瑣的事情。而與其他GUI工具相比,比如Q...
閱讀 3510·2021-11-25 09:43
閱讀 1266·2021-09-08 09:45
閱讀 2643·2021-09-07 09:59
閱讀 1502·2021-08-09 13:45
閱讀 3339·2019-08-30 15:54
閱讀 696·2019-08-29 18:35
閱讀 513·2019-08-29 17:18
閱讀 992·2019-08-29 14:10