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