本文實例講述了Java Swing組件布局管理器之FlowLayout(流式布局)。分享給大家供大家參考,具體如下:
專業(yè)從事做網(wǎng)站、成都網(wǎng)站制作,高端網(wǎng)站制作設(shè)計,重慶小程序開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊竭力真誠服務(wù),采用H5頁面制作+CSS3前端渲染技術(shù),響應(yīng)式網(wǎng)站建設(shè),讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項小組,與您實時在線互動,隨時提供解決方案,暢聊想法和感受。
FlowLayout應(yīng)該是Swing布局管理器學(xué)習(xí)中最簡單、最基礎(chǔ)的一個。所謂流式,就是內(nèi)部控件像水流一樣,從前到后按順序水平排列,直到達(dá)到容器的寬度時跳轉(zhuǎn)到第二行。既然是水平排列,那么就存在三種基本的對齊方式:居中對齊(CENTER )、左對齊(LEFT )和右對齊(RIGHT )。然而,F(xiàn)lowLayout還提供兩種對齊方式:LEADING,表示控件與容器方向開始邊對應(yīng);TRAILING,控件與容器方向結(jié)束邊對應(yīng)。setAlignment(int align)用于設(shè)置對齊方式。在一般情況下,LEADING就是左對齊,TRAILING就是右對齊。除此之外,F(xiàn)lowLayout還可以對內(nèi)部控件之間、內(nèi)部控件與容器之間的間距進(jìn)行設(shè)置,setHgap(int hgap)用于指定水平間距;setVgap(int vgap)用于指定垂直間距。
FlowLayout常用方法如下:
構(gòu)造函數(shù) | ||
名稱 | 用途 | |
FlowLayout() | 構(gòu)造一個新的 FlowLayout,它是默認(rèn)居中對齊的,默認(rèn)的水平和垂直間隙是5個像素 | |
FlowLayout(int align) | 構(gòu)造一個新的 FlowLayout,它具有指定的對齊方式,默認(rèn)的水平和垂直間隙是 5 個像素 五個參數(shù)值及含義如下: 0或FlowLayout.lEFT ,控件左對齊 1或FlowLayout.CENTER ,居中對齊 2或FlowLayout.RIGHT ,右對齊 3或FlowLayout.LEADING,控件與容器方向開始邊對應(yīng) 4或FlowLayout.TRAILING,控件與容器方向結(jié)束邊對應(yīng) 如果是0、1、2、3、4之外的整數(shù),則為左對齊 | |
FlowLayout(int align, int hgap, int vgap) | 創(chuàng)建一個新的流布局管理器,它具有指定的對齊方式以及指定的水平和垂直間隙。 |
基本方法 | |
名稱 | 用途 |
Void setAlignment(int align) | 設(shè)置此布局的對齊方式。 |
void setHgap(int hgap) | 設(shè)置組件之間以及組件與 Container 的邊之間的水平間隙。 |
void setVgap(int vgap) | 設(shè)置組件之間以及組件與 Container 的邊之間的垂直間隙。 |
測試用例如下:
package awtDemo; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.HashMap; import java.util.Map; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; /* * @功能:演示FlowLayout布局管理器的用法 * @版本:20150609 */ @SuppressWarnings("serial") public class FlowLayoutDemo extends JFrame { FlowLayout contentPanelLayout = new FlowLayout(); Map<String, Integer> alignmentMap = new HashMap<String, Integer>(); JPanel configPanel = new JPanel(); JPanel contentPanel = new JPanel(); JComboBox<String> alignmentComboBox = new JComboBox<String> (); JTextField textHgap = new JTextField("10"); JTextField textVgap = new JTextField("20"); MyListener myListener = new MyListener(); public FlowLayoutDemo() { //init alignmentMap.put("LEFT", 0); alignmentMap.put("CENTER", 1); alignmentMap.put("RIGHT", 2); alignmentMap.put("LEADING", 3); alignmentMap.put("TRAILING", 4); //設(shè)置面板 configPanel.setLayout(new FlowLayout()); configPanel.add(new JLabel("對齊方式")); for (String alignment : alignmentMap.keySet()) { alignmentComboBox.addItem(alignment); } configPanel.add(alignmentComboBox); configPanel.add(new JLabel("水平間距")); configPanel.add(textHgap); configPanel.add(new JLabel("垂直間距")); configPanel.add(textVgap); JButton actionBtn = new JButton("Action!!!"); actionBtn.addActionListener(myListener); configPanel.add(actionBtn); //展示面板 contentPanel.setLayout(contentPanelLayout); contentPanel.add(new JButton("Button 1")); contentPanel.add(new JButton("Button 2")); contentPanel.add(new JButton("Button 3")); contentPanel.add(new JButton("Button 4")); //主窗體 setLayout(new BorderLayout()); add("North",configPanel); add("South", contentPanel); } class MyListener implements ActionListener { public void actionPerformed(ActionEvent e) { String alignmentStr = alignmentComboBox.getSelectedItem().toString(); int alignment = alignmentMap.get(alignmentStr); contentPanelLayout.setAlignment(alignment); int hgap = Integer.valueOf(textHgap.getText()); int vgap = Integer.valueOf(textVgap.getText()); contentPanelLayout.setHgap(hgap); contentPanelLayout.setVgap(vgap); contentPanel.updateUI(); } } public static void main(String[] args) { // TODO Auto-generated method stub FlowLayoutDemo window = new FlowLayoutDemo(); window.setTitle("FlowLayoutDemo - www.jb51.net"); // 該代碼依據(jù)放置的組件設(shè)定窗口的大小使之正好能容納你放置的所有組件 window.setPreferredSize(new Dimension(500, 200)); window.pack(); window.setVisible(true); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setLocationRelativeTo(null); // 讓窗體居中顯示 } }
運行效果如下:
更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
分享標(biāo)題:JavaSwing組件布局管理器之FlowLayout(流式布局)入門教程
鏈接地址:http://aaarwkj.com/article12/pdppdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、商城網(wǎng)站、移動網(wǎng)站建設(shè)、定制網(wǎng)站、微信公眾號、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)