上次为大家介绍过在java中swing有哪些组件?分组布局的含义?今天再为大家介绍一些相关知识,也就是java布局管理有哪些,并且通过详细的图片为大家展示。
首先我们需要了解的是,java为我们提供了几个常用的布局管理器类,比如说:FlowLayout、BorderLayout、GridLayout、GridBagLayout等。
接下来分别为大家介绍一下。
一、java.awt FlowLayout(流布局)
它将组件按从左到右然后从上到下的顺序依次排列,一行不能放完就折到下一行继续放置。流式布局可以用左对齐、居中对齐、右对齐的方式排列组件。如下图所示:
流式布局不限制它所管理的组件的大小,允许他们有最佳的大小。当容器最缩放时,组件的位置可以改变,但组件的大小不改变。JPanel的默认布局为流式布局管理。
二、java.awt BorderLayout(边界布局)
它将组件按东、南、西、北、中五个区域放置,每个方向最多只能放置一个组件。如下图所示:
JFrame窗体,JDialog对话框组件默认布局方法为边界布局(BorderLayout),边界布局的五个部分不是都要添加,中间部分会自动调节大小。
三、java.awt GridLayout(网格布局)
它形似一个无框线的表格,每个单元格中放一个组件。将容器分割成多行多列,组件被填充到每个网格中,添加到容器中的组件首先放置在左上角的网格中,然后从左到右放置其他组件,当占满该行的所有网格后,接着继续在下一行从左到右放置组件。如下图所示:
另外,组件的相对位置不随容器的缩放而改变,但大小会改变,所有组件的大小相同。并且可以通过GridLayout(int rows, int cols, int hgap, int vgap)来指定网格的行/列,水平间隙/垂直间隙。最后java.awt GridBagLayout非常灵活,可以指定组件放置的具体位置及占用单元格数目。
四、一个界面只可以有一个JFrame窗体组件,但是可以有多个Jpanel面板组件,而JPanel上也可使用各种布局管理器,这样可以组合使用达到较为复杂的布局效果。
JPanel是JComponent的子类。默认布局为流式布局(FlowLayout),属于容器类组件,可以加入别的组件。
代码如下所示:
import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class MultiLayout extends JFrame { private static final long serialVersionUID = 1 L; // 定义组件 JPanel jp1, jp2; JButton jb1, jb2, jb3, jb4, jb5, jb6; public static void main(String[] args) { new MultiLayout(); } public MultiLayout() { // 创建组件 // JPanel布局默认是FlowLayout流布局 jp1 = new JPanel(); jp2 = new JPanel(); jb1 = new JButton("西瓜"); jb2 = new JButton("苹果"); jb3 = new JButton("荔枝"); jb4 = new JButton("葡萄"); jb5 = new JButton("桔子"); jb6 = new JButton("香蕉"); // 设置布局管理器(Jpanel默认流布局) jp1.add(jb1); jp1.add(jb2); jp2.add(jb3); jp2.add(jb4); jp2.add(jb5); // 把Panel加入JFrame this.add(jp1, BorderLayout.NORTH); this.add(jb6, BorderLayout.CENTER); this.add(jp2, BorderLayout.SOUTH); // 设置窗体 // 窗体大小 this.setSize(300, 250); // 屏幕显示初始位置 this.setLocation(200, 200); // 显示 this.setVisible(true); // 退出窗体后将JFrame同时关闭 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
图片如下:
以上就是关于java布局管理有哪些的具体内容,并且通过具体的图片为大家展示。想要了解更多java基础以及常见问题,敬请关注奇Q工具网。
推荐阅读: