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); } }
默认情况下,FlowLayout会对齐容器中心的所有组件。我们可以通过调用其setAlignment()方法或在其构造函数中传递对齐来更改对齐方式,如下所示:
在创建布局管理器对象时设置对齐方式
FlowLayout flowLayout = new FlowLayout(FlowLayout.RIGHT);
在创建流布局管理器之后设置对齐
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); } }
Java Swing教程 -JSplitPaneJSplitPane有一个拆分器来拆分两个组件。 分割条可以水平或垂直显示。用户可以向上/向下或向左/向右...
Java Swing教程 -Java Swing JSliderJSlider允许我们通过沿着轨道滑动旋钮从两个整数之间的值列表中选择一个值。JSlider有四个重...
MyBatis-Plus 条件构造器-AbstractWrapperhaving(String sqlHaving, Object... params)having(boolean condition...
安装要使用MyBatis,只需将mybatis-x.x.x.jar文件置于类路径(classpath)中即可。如果使用Maven来构建项目,则需将下面的依...
映射器(mappers)既然MyBatis的行为已经由上述元素配置完了,我们现在就要来定义SQL映射语句了。但首先,我们需要告诉MyBatis到...
春天教程 - 春天松散耦合例子...项目代码我们将创建一个有几个类的项目。项目将以不同的格式输出数据。我们可以选择以CSV格式或J...
Spring教程 - 弹簧属性我们可以将值或值列表填充到Spring xml配置文件中定义的Java bean。以下部分显示如何将数据填充到java.uti...
Spring教程 -Spring表达式语言运算符Spring Expression Language支持标准的数学,逻辑或关系运算符。Spring Expression Language...