Swing-setAlignmentX()用法-入门
先看下API:
public void setAlignmentX(float alignmentX)
设置垂直对齐方式。
参数: alignmentX - 新的垂直对齐方式
网上关于这个函数的详细情况介绍的不多,JAVA布局管理器提到说, setAlignmentX(left,right)只有在布局是BoxLayout.Y_AXIS才效,而setAlignmentY(top,button)在布局为BoxLayout.X_AXIS才效果。我基本同意这个理解,也就是说,setAlignmentX()用于使用了BoxLayout.Y_AXIS时,将控件在X轴方向设置为左对齐、右对齐或居中对齐;setAlignmentY()用于使用了BoxLayout.X_AXIS时,将控件在Y轴方向设置为顶对齐、底对齐或居中对齐。以下是测试代码:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.awt.TextArea;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.OverlayLayout;
import javax.swing.border.EtchedBorder; /*
* 2015-06-13
*/
public class setAlignmentDemo { public static void main(String[] args) {
// TODO Auto-generated method stub //第一个panel,垂直排列
JPanel jpanelY = new JPanel();
jpanelY.setLayout(new BoxLayout(jpanelY,BoxLayout.Y_AXIS));
jpanelY.setBorder(BorderFactory.createTitledBorder("BoxLayout.Y_AXIS"));
JButton buttonY1 = new JButton("LEFT_ALIGNMENT");
JButton buttonY2 = new JButton("RIGHT_ALIGNMENT");
JButton buttonY3 = new JButton("CENTER_ALIGNMENT"); buttonY1.setAlignmentX(Component.LEFT_ALIGNMENT);
buttonY2.setAlignmentX(Component.RIGHT_ALIGNMENT);
buttonY3.setAlignmentX(Component.CENTER_ALIGNMENT); jpanelY.add(buttonY1);
jpanelY.add(buttonY2);
jpanelY.add(buttonY3);
//第二个panel,水平排列
JPanel jpanelX=new JPanel();
jpanelX.setLayout(new BoxLayout(jpanelX,BoxLayout.X_AXIS));
jpanelX.setBorder(BorderFactory.createTitledBorder("BoxLayout.X_AXIS")); JButton buttonX1 = new JButton("TOP_ALIGNMENT");
JButton buttonX2 = new JButton("BOTTOM_ALIGNMENT");
JButton buttonX3 = new JButton("CENTER_ALIGNMENT"); buttonX1.setAlignmentY(Component.TOP_ALIGNMENT);
buttonX2.setAlignmentY(Component.BOTTOM_ALIGNMENT);
buttonX3.setAlignmentY(Component.CENTER_ALIGNMENT); jpanelX.add(buttonX1);
jpanelX.add(buttonX2);
jpanelX.add(buttonX3); //添加两个panel到窗体
JFrame frame = new JFrame("setAlignmentDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout());
frame.add(jpanelX);
frame.add(jpanelY);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
运行效果如下:

运行效果图
那么问题来了,运行结果的对齐方式是反的?
Swing-setAlignmentX()用法-入门的更多相关文章
- 精通awk系列(4):awk用法入门
回到: Linux系列文章 Shell系列文章 Awk系列文章 awk用法入门 awk 'awk_program' a.txt awk示例: # 输出a.txt中的每一行 awk '{print $0 ...
- [转帖]PG语法解剖--基本sql语句用法入门
PG语法解剖--基本sql语句用法入门 https://www.toutiao.com/i6710897833953722894/ COPY 命令挺好的 需要学习一下. 原创 波波说运维 2019-0 ...
- Go之Logrus用法入门
Go之Logrus用法入门 Logrus是Go (golang)的结构化日志程序,完全兼容标准库的API日志程序. Logrus is a structured logger for Go (gola ...
- AWK用法入门详解
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- Swing-JOptionPane对话框用法-入门
对话框是GUI程序中常见的界面,通常用来反馈提示信息.告警或获取用户输入.比如这种: JOptionPane是Swing中的一个对话框类,它能够提供常见的绝大多数对话框效果,本文对这个类进行介绍.需要 ...
- Swing-JComboBox用法-入门
JComboBox是Swing中的下拉菜单控件.它永远只能选中一个项目,然而比单选按钮节省空间.如果使用setEditable设置为true则内部选项的文本可以编辑,因此这种组件被称为组合框.注意,对 ...
- Swing-setBorder()用法-入门
注:本文内容转自:Swing编程边框(Border)的用法总结.内容根据笔者理解稍有整理. 函数说明: public void setBorder(Border border) 设置此组件的边框.Bo ...
- Java-Preferences用法-入门
Properties提供的应用程序解决方案主要存在两个问题: (1)配置文件不能放在主目录中,因为某些OS(如Win9X)没有主目录的概念: (2)没有标准的文件命名规则,存在文件名冲突的可能性. J ...
- Java-Properties用法-入门
对于应用程序的配置,通常的做法是将其保存在独立的配置文件中,程序启动时加载,修改时保存.Java中Properties类就提供了这样一种机制,配置项以Key-Value的数据结构存储在文本文件中,扩展 ...
随机推荐
- cobbler无人值守批量安装Linux系统
本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...
- oracle 基础(上)
sql 语句氛围以下三种类型: dml:Date Manipulation Language 数据操纵语言 DDL:Data Definition Language 数据定义语言 DCL:Data ...
- HDU 4372 Count the Buildings:第一类Stirling数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4372 题意: 有n栋高楼横着排成一排,各自的高度为1到n的一个排列. 从左边看可以看到f栋楼,从右边看 ...
- 使用 ESXi 虚拟化 Ryzen 1700
最近开发的一个项目,需要多台机器支持,PC + 各种虚拟机,整得很乱,一怒之下,购买一台Ryzen 1700 + 32GB机器自行搭建服务器.经历两天时间,不停的踩坑,终于完成: Ryzen 1700 ...
- Android App 压力测试 monkeyrunner
Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...
- 【Hadoop】NameNode
一.背景介绍 当数据集的大小超过一台独立的物理计算机的存储能力时,就有必要对它进行分区(partition)并存储到多台单独的计算机上.管理网络中跨多台计算机存储的文件系统称为分布式文件系统(dist ...
- 一个C#操作RabbitMQ的完整例子
一.下载RabbitMQ http://www.rabbitmq.com/install-windows.html 二.下载OTP http://www.erlang.org/downloads 三. ...
- JQuery基础 接下来我将把我最近学习jQuery所做的笔记发布,希望对初学者有些许帮助,也方便自己以后复习
jQuery简介 1.概念: jQuery是一个优秀的JavaScript库,而非JavaScript.它是轻量级的库2.兼容性:兼容css3,以及各种浏览器.3版本: 1.x-----------兼 ...
- 【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析
[渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP ...
- RPC服务不可用总结
A简单方法: 通过"控制面板/管理工具/服务",检查一下RPC的Remote Procedure Call (RPC)和Remote Procedure Call (RPC) Lo ...