Java里Swing的布局练习代码(1)

流式布局练习代码(FlowLayout

  • 代码部分
package top.linksinke.jframe;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.HeadlessException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;

/**
 * swing布局练习:流式布局<br />
 * create by LINKSINKE on 2020/2/27
 */
public class FlowLayoutTest extends JFrame {
	public FlowLayoutTest() throws HeadlessException {
		// 设置窗口默认打开的x、y坐标及其打开后的窗口大小
		this.setBounds(10, 10, 400, 400);
		// 设置close关闭按钮的操作,关闭窗口和停止程序运行
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 设置窗口显示的标题内容
		this.setTitle("o(∩_∩)o 哈哈");
		// 设置是否显示窗口
		this.setVisible(true);

	}

	public static void main(String[] args) {
		JFrame jframe = new FlowLayoutTest();
		// 获取窗口的容器对象
		Container ctainer = jframe.getContentPane();
		// 设置窗口的布局方式为流式布局
		ctainer.setLayout(new FlowLayout());
		// 循环添加10个按钮
		for (int i = 0; i < 10; i++) {
			JButton jbtn = new JButton("按钮" + i);
			ctainer.add(jbtn);
		}
	}
}
  • 代码效果图
    在这里插入图片描述

边界布局练习代码(BorderLayout

  • 代码部分
package top.linksinke.jframe;

import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;

/**
 * swing 布局练习:边界布局<br />
 * create by LINKSINKE on 2020/2/27
 */
public class BorderLayoutTest extends JFrame {
	public BorderLayoutTest() {
		// 设置窗口打开的x、y坐标及打开后的窗口大小
		this.setBounds(200, 50, 500, 220);
		// 设置close关闭按钮的操作(关闭窗口和停止程序运行)
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 设置是否显示窗口(true:表示显示窗口,false:表示不显示窗口)
		this.setVisible(true);
	}
	
	public static void main(String args[]) {
		BorderLayoutTest blt = new BorderLayoutTest();
		// 获取blt窗口的容器对象
		Container ctainer = blt.getContentPane();
		// 设置布局方式为边界布局
		ctainer.setLayout(new BorderLayout());
		// 创建五个按钮并设置他们的显示位置(重复的会覆盖之前的)
		ctainer.add(new JButton("东边的按钮"), BorderLayout.EAST);
		ctainer.add(new JButton("北边的按钮"), BorderLayout.NORTH);
		ctainer.add(new JButton("南边的按钮"), BorderLayout.SOUTH);
		ctainer.add(new JButton("西边的按钮"), BorderLayout.WEST);
		ctainer.add(new JButton("中间的按钮"), BorderLayout.CENTER);

		// 覆盖测试
		ctainer.add(new JButton("我来覆盖一下中间的按钮"), BorderLayout.CENTER);
	}
}
  • 代码效果图
    在这里插入图片描述

网格布局练习代码(GridLayout

  • 代码部分
package top.linksinke.jframe;

import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

/**
 * swing布局练习:网格布局<br />
 * create by LINKSINKE on 2020/2/27
 */
public class GridLayoutTest extends JFrame {
	public GridLayoutTest() {
		// 设置默认窗口打开的x、y坐标位置以及打开的窗口大小
		this.setBounds(200, 140, 300, 500);
		// 设置点击close按钮的操作(窗口关闭并停止程序的运行)
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 设置是否显示窗口(true:表示显示窗口,false:表示不显示窗口)
		this.setVisible(true);

	}
	
	public static void main(String[] args) {
		JFrame jframe = new GridLayoutTest();
		// 获取jframe的容器对象
		Container ctainer = jframe.getContentPane();
		// 设置窗口的布局方式为网格布局
		ctainer.setLayout(new GridLayout(5, 4));// 网格行为5,列为4
		for (int i = 0; i < 20; i++) {
			ctainer.add(new JButton("标签" + i));
		}
	}
}
  • 代码效果图
    显示的为五行四列,一共20个按钮
    在这里插入图片描述
    我们在修改一下,将循环的大小修改成300,看看是什么效果。。。
    在这里插入图片描述
    在这里插入图片描述
    显示的行数量并没有随着高度发生变化,还是五行默认显示,而显示的列不再是4列了
发布了68 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_29001539/article/details/104541931
今日推荐