Java Swing FlowLayout
Java Swing教程 - Java Swing FlowLayout
FlowLayout按照它们添加到容器的顺序布置组件水平,然后垂直。
当水平地定位部件时,它可以将它们从左到右,或从右到左。
水平布局方向取决于容器的方向。我们可以通过调用它的setComponentOrientation()方法来设置容器的方向。
要设置容器及其所有子项的方向,请改用applyComponentOrientation()方法。
以下代码显示如何设置方向内容窗格以“从右到左"。
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);
要以更通用的方式支持区域设置和方向,请全局设置所有Swing组件的默认区域设置:
// "ar" is used for Arabic locale JComponent.setDefaultLocale(new Locale("ar"));
当我们创建JFrame时,我们可以根据默认语言环境获取组件的方向,并将其设置为框架及其子项。
这样,我们不必为应用程序中的每个容器设置方向。
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); } }
Java Swing教程 - Java Swing FlowLayout...
默认情况下,FlowLayout会对齐容器中心的所有组件。我们可以通过调用其setAlignment()方法或在其构造函数中传递对齐来更改对齐方式,如下所示:
在创建布局管理器对象时设置对齐方式
FlowLayout flowLayout = new FlowLayout(FlowLayout.RIGHT);
在创建流布局管理器之后设置对齐
FlowLayout flowLayout = new FlowLayout(FlowLayout.LEFT); flowLayout.setAlignment(FlowLayout.RIGHT);
在FlowLayout类中定义了以下五个常量来表示五个不同的比对:
- LEFT
- RIGHT
- CENTER
- LEADING
- TRAILING
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); } }
更多建议: