W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
FlowLayout按照它們添加到容器的順序布置組件水平,然后垂直。
當(dāng)水平地定位部件時,它可以將它們從左到右,或從右到左。
水平布局方向取決于容器的方向。我們可以通過調(diào)用它的setComponentOrientation()方法來設(shè)置容器的方向。
要設(shè)置容器及其所有子項的方向,請改用applyComponentOrientation()方法。
以下代碼顯示如何設(shè)置方向內(nèi)容窗格以“從右到左"。
JFrame frame = new JFrame("Test"); Container pane = frame.getContentPane(); pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
這里是另一種方式做同樣的事情,如上所述。
JFrame frame = new JFrame("Test"); Container pane = frame.getContentPane(); pane.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
要以更通用的方式支持區(qū)域設(shè)置和方向,請全局設(shè)置所有Swing組件的默認(rèn)區(qū)域設(shè)置:
// "ar" is used for Arabic locale JComponent.setDefaultLocale(new Locale("ar"));
當(dāng)我們創(chuàng)建JFrame時,我們可以根據(jù)默認(rèn)語言環(huán)境獲取組件的方向,并將其設(shè)置為框架及其子項。
這樣,我們不必為應(yīng)用程序中的每個容器設(shè)置方向。
Locale defaultLocale = JComponent.getDefaultLocale(); ComponentOrientation componentOrientation = ComponentOrientation.getOrientation(defaultLocale); frame.applyComponentOrientation(componentOrientation);
FlowLayout嘗試將所有組件放入一行,給它們他們的首選大小。如果所有組件不適合一行,則會啟動另一行。
FlowLayout可以為寬度和高度添加額外的空間,以考慮組件之間的水平和垂直間隙。
import java.awt.Container; import java.awt.FlowLayout; // w w w . j ava 2s .c o m import javax.swing.JButton; import javax.swing.JFrame; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("Layout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = frame.getContentPane(); contentPane.setLayout(new FlowLayout()); for (int i = 1; i <= 5; i++) { contentPane.add(new JButton("Button " + i)); } frame.pack(); frame.setVisible(true); } }
默認(rèn)情況下,F(xiàn)lowLayout會對齊容器中心的所有組件。我們可以通過調(diào)用其setAlignment()方法或在其構(gòu)造函數(shù)中傳遞對齊來更改對齊方式,如下所示:
在創(chuàng)建布局管理器對象時設(shè)置對齊方式
FlowLayout flowLayout = new FlowLayout(FlowLayout.RIGHT);
在創(chuàng)建流布局管理器之后設(shè)置對齊
FlowLayout flowLayout = new FlowLayout(FlowLayout.LEFT); flowLayout.setAlignment(FlowLayout.RIGHT);
在FlowLayout類中定義了以下五個常量來表示五個不同的比對:
LEADING對齊可以意味著向左或向右, 它取決于組件的方向。
LEADING對齊可以意味著向左或向右, 它取決于組件的方向。...
TRAILING對齊可以表示向左或向右。如果組件的方向為RIGHT_TO_LEFT,TRAILING對齊裝置為LEFT。如果組件的方向是LEFT_TO_RIGHT,則TRAILING對齊表示向右。
TRAILING對齊可以表示向左或向右。如果組件的方向為RIGHT_TO_LEFT,TRAILING對齊裝置為LEFT。如果組件的方向是LEFT_TO_RIGHT,則TRAILING對齊表示向右。...
import java.awt.ComponentOrientation; import java.awt.Container; import java.awt.FlowLayout; // w w w . j av a 2 s. c o m import javax.swing.JButton; import javax.swing.JFrame; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("Layout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); int horizontalGap = 20; int verticalGap = 10; Container contentPane = frame.getContentPane(); FlowLayout flowLayout = new FlowLayout(FlowLayout.LEADING, horizontalGap, verticalGap); contentPane.setLayout(flowLayout); frame.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); for (int i = 1; i <= 5; i++) { contentPane.add(new JButton("Button " + i)); } frame.pack(); frame.setVisible(true); } }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: