java swing的布局方式

来源:互联网 发布:vscode 新建工程 编辑:程序博客网 时间:2024/06/11 08:08


当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理。JPanel缺省是初始化一个FlowLayout,而content pane
缺省是初始化一个BorderLayout。下面将分别介绍几种最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout
、GridLayout和GridBagLayout


FlowLayout(流式布局)

使用FlowLayout布局方式的容器中组件按照加入的先后顺序按照设置的对齐方式(居中、左对齐、右对齐)从左向右排列,一行排满(即组件超过容器宽度后)到下一行开始继续排列。

1、流式布局特征如下:

l  组件按照设置的对齐方式进行排列

l  不管对齐方式如何,组件均按照从左到右的方式进行排列,一行排满,转到下一行。(比如按照右对齐排列,第一个组件在第一行最右边,添加第二个组件时,第一个组件向左平移,第二个组件变成该行最右边的组件,这就是从左向右方式进行排列)


、FlowLayout 布局应用代码段举例

1)        设置FlowLayout 布局

JFrame  fr=new JFrame( );

FlowLayout  flow=new FlowLayout( );

fr.setLayout(flow);

上面的语句可以简化成:
fr.setLayout(new FlowLayout());

2)        设置框架fr为组件左对齐的FlowLayout布局

fr.setLayout(newFlowLayout(FlowLayout.LEFT));

3)        设置框架fr为组件左对齐的FlowLayout布局,并且组件的水平间距为20像素,垂直间距为40像素。

fr.setLayout(new  FlowLayout(FlowLayout.LEFT,20,40));

 

 

实例:对齐方式

// FlowLayoutDemo.java

importjavax.swing.*;

importjava.awt.*;

public classFlowLayoutDemo extends JFrame {

  public FlowLayoutDemo() {

         //设置窗体为流式布局,无参数默认为居中对齐

    setLayout(new FlowLayout());

         //设置窗体中显示的字体样式

    setFont(new Font("Helvetica",Font.PLAIN, 14));

         //将按钮添加到窗体中

    getContentPane().add(newJButton("Button 1"));

    getContentPane().add(new JButton("Button 2"));

    getContentPane().add(new JButton("Button3"));

    getContentPane().add(newJButton("Button 4"));

  }

  public static void main(String args[]) {

    FlowLayoutDemo window = newFlowLayoutDemo();

    window.setTitle("流式布局");

          //该代码依据放置的组件设定窗口的大小使之正好能容纳你放置的所有组件

    window.pack();

    window.setVisible(true);

         window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

         window.setLocationRelativeTo(null);                //让窗体居中显示

  }

}