• java Swing组件的对齐问题


    原文地址:http://blog.sina.com.cn/s/blog_7750745b010197ta.html

    这次记录一下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后的对齐效果
     

  • 相关阅读:
    MyEclipse快捷键大全
    mac下配置android环境变量
    JAVA NIO 简单介绍
    android读取大图片并缓存
    Android  <meta-data>
    iPhone 6/6 Plus国行版开卖当日抢购攻略
    A380上11万一张的机票什么享受?来看看
    连载15年!《火影忍者》终于迎来大结局
    Windows 技术预览版
    纪录片《天安门》
  • 原文地址:https://www.cnblogs.com/ncgds/p/7851109.html
Copyright © 2020-2023  润新知