GridLayout的使用

GridLayout的使用GridLayout的使用:GridLayout的类层次结构图:java.lang.Object–java.awt.GridLayoutGridLayout比FlowLayout多了行和列的设置,也就是说你要先设置GridLayout共有几行几列,就如同二维平面一般,然后你加进去的组件会先填第一行的格子,然后再从第二行开始填,依此类扒,就像是一个个的格子一般。而

大家好,又见面了,我是你们的朋友全栈君。GridLayout的使用:

GridLayout的类层次结构图:
java.lang.Object
        --java.awt.GridLayout

GridLayout比FlowLayout多了行和列的设置,也就是说你要先设置GridLayout共有几行几列,就如同二维平面一般,然后你加 进去的组件会先填第一行的格子,然后再从第二行开始填,依此类扒,就像是一个个的格子一般。而且GridLayout会将所填进去组 件的大小设为一样。

构造函数:

GridLayout()建立一个新的GridLayout,默认值是1行1列。
GridLayout(int rows,int cols)建立一个几行几列的GridLayout.
GridLayout(int rows,int cols, int hgap,int vgap)建立一个几行几列的GridLayout,并设置组件的间距。

例子:GridLayoutDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CardLayoutDemo implements ActionListener {
	JPanel p1, p2, p3, p4;
	int i = 1;
	JFrame f;

	public CardLayoutDemo() {
		f = new JFrame();// 当做top-level组件
		Container contentPane = f.getContentPane();
		contentPane.setLayout(new GridLayout(2, 1));

		p1 = new JPanel();
		Button b = new Button("Change Card");
		b.addActionListener(this);// 当按下"Change Card"时,进行事件监听,将会有系统操作产生。
		p1.add(b); // 处理操作在52-64行.
		contentPane.add(p1);

		p2 = new JPanel();
		p2.setLayout(new FlowLayout());
		p2.add(new JButton("first"));
		p2.add(new JButton("second"));
		p2.add(new JButton("third"));

		p3 = new JPanel();
		p3.setLayout(new GridLayout(3, 1));
		p3.add(new JButton("fourth"));
		p3.add(new JButton("fifth"));
		p3.add(new JButton("This is the last button"));

		p4 = new JPanel();
		p4.setLayout(new CardLayout());
		p4.add("one", p2);
		p4.add("two", p3);
		/* * 要显示CardLayout的卡片,除了用show(Container parent,String name)这个方法外 * ,也可试试first( * Container),next(Container),previous(Container),last(Container)这 * 四个方法,一样可以达到显示效果。 */
		((CardLayout) p4.getLayout()).show(p4, "one");

		contentPane.add(p4);

		f.setTitle("CardLayout");
		f.pack();
		f.setVisible(true);

		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});

	}

	public void actionPerformed(ActionEvent event) {
		switch (i) {
		case 1:
			((CardLayout) p4.getLayout()).show(p4, "two");
			break;
		case 2:
			((CardLayout) p4.getLayout()).show(p4, "one");
			break;
		}
		i++;
		if (i == 3)
			i = 1;
		f.validate();
	}

	public static void main(String[] args) {
		new CardLayoutDemo();
	}
}








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131592.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DNS服务器fe80_无法访问dns域名服务器

    DNS服务器fe80_无法访问dns域名服务器服务器dns地址fec0内容精选换一换Atlas200DK开发者板支持通过USB端口或者网线与Ubuntu服务器进行连接,连接示例图如图1所示。Atlas200DK连接Ubuntu服务器有以下场景:使用USB连接线通过USB端口与Ubuntu服务器直连,请参考通过USB端口直连Ubuntu服务器。此种场景下,Atlas200DK不方便接入网络,仅适用于与Ubunt创建子网。您可以在A…

    2022年8月11日
    17
  • 批量下载ts视频文件

    批量下载ts视频文件第一步使用chrome按F12进入开发模式,拖动视频进度条到视频结束;然后找到.m3u8以结尾的文件并保存为文本文件。第二步点开查看里面是否存在如下以ts结尾的文件内容……/20180802/eXLFMdky/800kb/hls/QV7N1B14122999.ts/20180802/eXLFMdky/800kb/hls/QV7N1B14123000.ts…

    2022年7月18日
    19
  • java编译过程_Java编译运行过程

    java编译过程_Java编译运行过程Java编译运行过程在上一篇文章中,我们了解了第一个Java入门程序,以及如何编译和运行第一个Java程序。本文主要了解以下编译和运行Java程序时会发生什么。此外,我们还会分析一些常见的问题。1Java程序编译过程在编译时,Java文件由Java编译器(它不与底层操作系统交互)将Java代码转换为字节码(.class)。2Java程序运行过程在Java程序运行中,会执行以下步骤:类加载器(C…

    2022年4月30日
    38
  • 蒙特卡洛方法学习(一)[通俗易懂]

    蒙特卡洛方法学习(一)[通俗易懂]转载:http://www.ruanyifeng.com/blog/2015/07/monte-carlo-method.html蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,

    2022年8月6日
    5
  • 多级时间轮定时器_时间轮与哈希表定时

    多级时间轮定时器_时间轮与哈希表定时时间轮简述顾名思义,时间轮就像一个轮子,在转动的时候外界会指向轮子不同的区域,该区域就可以被使用。因此只要将不同时间的定时器按照一定的方法散列到时间轮的不同槽(即时间轮划分的区域)之中,就可以实现在运转到某个槽时,进行判断该定时器是否已经到达运行时间(需要判断是由于有的定时器并非在这一圈就需要运行,可能需要后面几圈才会运行。从图中也可以看出,每个槽中的定时器是以(双向)链表…

    2022年9月29日
    0
  • idea的mybatiscodehelppro离线激活码-激活码分享2022.02.06

    (idea的mybatiscodehelppro离线激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月1日
    926

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号