博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java Swing组件的对齐问题
阅读量:5227 次
发布时间:2019-06-14

本文共 2138 字,大约阅读时间需要 7 分钟。

原文地址:

 

这次记录一下Swing组件的对齐问题。

 
-----JPanel-----
  首先从Jpanel说起,很多时候,需要在JPanel上使组件遵循某种对齐方式:
 (注,JDK1.5以后版本,对frame调用setLayout会默认在frame的content面板上执行)
  方法:
   使用布局管理器:FlowLayout
  代码:(右对齐)
   panel.setLayout(new FlowLayout(FlowLayout.RIGHT));
 
----JLabel-------
  偶尔,设计Label的时候也会需要让Label上的文字实现某种对齐方式:
  方法:
    setHorizontalAlignment()
  代码:(右对齐)
    label.setHorizontalAlignment(JLabel.RIGHT);
 
----JTextField-----
  JTextField的右对齐很常用了,比如写一个计算器程序的输入框。
  方法:
   setHorizontalAlignment()
  代码:
   field.setHorizontalAlignment(JTextField.RIGHT);
 
----JFormattedTextField -----
  格式化文本框也常常使用。
  方法:(与JTextField相同)
    setHorizontalAlignment() 
  代码:
    field.setHorizontalAlignment(JTextField.RIGHT);
----JPasswordField -----
  密码框……似乎从右边输入是没有必要的。
  方法:(与JTextField相同)
    setHorizontalAlignment()
  代码:
    field.setHorizontalAlignment(JTextField.RIGHT);
 
----JTexArea-----
  这是为了实现从Area的右边开始输入:
  方法:
    setComponentOrientation()
  代码:(从右向左输入)
    area.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
 
  关于setComponentOrientation():
  从Component继承而来,API这样描述:
  Sets the language-sensitive orientation that is to be used to order the elements or text within this component. Language-sensitive LayoutManager and Component subclasses will use this property to determine how to lay out and draw components.
 
---JEditorPane---
  这个我没尝试出右边输入的方法
 
---JTextPane----
  方法:
    setComponentOrientation()
  代码:(从右向左输入)
    textPane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
 
 
关于setAlignmentY的使用
  这个方法的确是用来设置对齐的,但对JPanl使用setAlignmentY(水平对齐)是不会另panel上组件改变对齐方式的,Api文档描述很简单:Sets the the horizontal alignment.
  其实该方法是用来设置组件自身的对齐方式,并且要求必须在布局方式为BoxLayout.X_AXIS
 (同理,setAlignmentX对应于BoxLayout.Y_AXIS)
  下面代码展示了这个问题:
 
[java:nogutter] view plaincopyprint?
JPanel panel = new JPanel();  
panel .setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));  
JButton button = new JButton("button");  
JButton button2 = new JButton("button2");  
JButton button3 = new JButton("button3");  
add(button);  
add(button2);  
add(button3);  
button.setAlignmentX(Component.LEFT_ALIGNMENT);  
button2.setAlignmentX(Component.RIGHT_ALIGNMENT);  
button3.setAlignmentX(Component.LEFT_ALIGNMENT);   
  通过上面代码,可以看到BoxLayout布局下,调用组件的setAlignmentX后的对齐效果
 

转载于:https://www.cnblogs.com/ncgds/p/7851109.html

你可能感兴趣的文章
exit和return的区别
查看>>
发布一个JavaScript工具类库jutil,欢迎使用,欢迎补充,欢迎挑错!
查看>>
discuz 常用脚本格式化数据
查看>>
洛谷P2777
查看>>
PHPStorm2017设置字体与设置浏览器访问
查看>>
SQL查询总结 - wanglei
查看>>
安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题
查看>>
makefile中使用变量
查看>>
GIT笔记:将项目发布到码云
查看>>
JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
查看>>
JavaScript 鸭子模型
查看>>
SQL Server 如何查询表定义的列和索引信息
查看>>
GCD 之线程死锁
查看>>
NoSQL数据库常见分类
查看>>
一题多解 之 Bat
查看>>
Java 内部类
查看>>
{面试题7: 使用两个队列实现一个栈}
查看>>
【练习】使用事务和锁定语句
查看>>
centos7升级firefox的flash插件
查看>>
Apache Common-IO 使用
查看>>