`

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();
	}
}
分享到:
评论

相关推荐

    GridLayout使用Demo(兼容4.0以下版本)

    总之,"GridLayout使用Demo(兼容4.0以下版本)"是一个帮助开发者在低版本Android系统上实现GridLayout功能的示例项目。它可能包含导入第三方库、创建GridLayout对象、设置子视图的布局参数等步骤,为开发者提供了一种...

    java swing-GridLayout的使用

    GridLayout 是一种 Java Swing 库提供的布局管理器,用于在容器中将组件排列为规则的行列网格。 GridLayout 的特点如下: 组件按照行和列的顺序进行排列。 所有的单元格大小相等,会根据容器的大小自动调整。 可以...

    在2.2下使用GridLayout

    最后,为了在API 21以下的设备上使用`GridLayout`,需要在代码中初始化`GridLayout`,通常在`onCreate()`方法中: ```java GridLayout gridLayout = (GridLayout) findViewById(R.id.grid_layout); if (Build....

    GridLayout

    使用`GridLayout`后,容器会被划分成一系列大小相等的矩形区域,每个区域中仅能放置一个组件。这种方式特别适合于那些需要整齐、对称布局的应用场景。 #### 二、基本概念与特点 1. **网格结构**:`GridLayout`将...

    java 应用GridLayout设计版面

    在本教程中,我们将深入探讨如何使用`GridLayout`设计版面。 1. **GridLayout的构造函数** `GridLayout`有三个构造函数,分别是: - `GridLayout(int rows, int cols)`:创建一个具有指定行数和列数的网格。 - `...

    Android 4.0 在GridLayout中模仿RadioButton单选按钮

    然而,在GridLayout中直接使用RadioButton并不能自动实现单选功能,因为GridLayout本身并不具备处理这种交互的能力。为了模仿RadioButton的单选效果,我们需要自定义一些逻辑。以下是一种实现方法: 1. **创建...

    GridLayout 用法

    - 在`Calculator`类的`init()`方法中,如果使用`GridLayout`,首先应该实例化`GridLayout`对象,并将其设置为容器的布局管理器。例如: ```java setLayout(new GridLayout(4, 3)); ``` 这将创建一个4行3列的...

    GridLayout 支持4.0以下版本实用的包

    为了在这些早期版本的Android系统上使用GridLayout,开发者需要采取一些额外的步骤。 1. **GridLayout的基本概念**:GridLayout是一种二维布局,它将子视图组织成行和列。每个子视图都可以占据一个或多个单元格,...

    Android使用GridLayout布局完成简易计算器界面设计的任务要求.pdf

    3. **左上角显示运算结果**:通常,我们可以使用TextView来展示运算结果,将其放在GridLayout的第一行第一列,并设置合适的大小,使其占据足够空间显示结果。 4. **数字键和运算键合理放置**:根据标准计算器的设计...

    matlab开发-GridLayout

    本教程将深入探讨`GridLayout`的使用方法和特点。 首先,`GridLayout`提供了类似于表格的布局方式,可以将界面控件按照行列的方式进行排列。通过调整单元格的大小和位置,我们可以创建出各种复杂的布局结构。与...

    Qt自定义控件GridLayout

    - `mainwindow.ui`和`gridlayout.ui`:使用Qt Designer设计的UI界面,以XML格式存储控件的布局和属性,可以通过`uic`工具转换为C++代码。 5. **进一步的优化建议**: - 可以添加事件过滤器以监听控件的添加和删除...

    GridLayout 布局管理详细解析

    在本详细解析中,我们将深入探讨GridLayout的使用方法、特性以及如何在实际开发中有效地利用它。 首先,GridLayout的核心在于它的网格结构。每个控件在GridLayout中占据一个或多个单元格,这些单元格通过行和列进行...

    Android使用GridLayout布局完成图片放大器项目的代码清单.pdf

    在“Android使用GridLayout布局完成图片放大器项目的代码清单”中,我们可以看到一个简单的案例,该案例展示了如何利用GridLayout来实现一个图片查看器,用户点击不同的按钮可以查看相应的图片。 首先,我们从`...

    Android应用开发-GridLayout的使用.pptx

    在本教程中,我们将深入探讨如何有效地使用GridLayout来创建复杂的用户界面,尤其是通过一个实例——计算器界面的开发,来加深理解。 ### GridLayout的特点 GridLayout与TableLayout相似,但比TableLayout更为灵活...

    GridLayout实例程序

    然而,了解和熟练使用GridLayout对于初学者来说是基础且必要的,因为它可以帮助理解布局管理的基本原理,为学习其他更复杂的布局打下坚实的基础。 在提供的压缩包文件"GridLayout"中,可能包含了一些示例代码或XML...

    Android使用GridLayout布局完成图片放大器的要求说明.pdf

    本篇文档主要介绍了如何使用GridLayout布局来实现一个图片放大器的功能,这对于理解和掌握Android UI设计以及事件处理有着重要的实践意义。 首先,我们要了解GridLayout的基本用法。GridLayout继承自ViewGroup,它...

    GridLayout示例图片

    下面我们将深入探讨GridLayout的基本概念、使用方法以及示例图片中的应用。 一、GridLayout概述 GridLayout是一个二维布局,它将容器划分为相等大小的行和列。每个子视图(View)都会占据一个或多个单元格,这些...

    android-support-v7-gridlayout.jar

    android-support-v7-gridlayout.jar

    Android 列表布局切换网格布局

    2. **GridLayout使用**:在Android中,可以使用GridLayout类来创建网格布局,通过设置columnCount属性定义列数,然后添加子视图到网格中。 3. **自定义网格项**:与ListView类似,可以自定义每个网格项的视图,以...

    021集-FrameLayout和GridLayout

    通过学习“021集-FrameLayout和GridLayout”的视频教材,你将能够熟练掌握这两种布局的使用方法,理解它们的工作原理,并能在实际项目中灵活运用。无论是初学者还是经验丰富的开发者,都能从中受益,提升Android UI...

Global site tag (gtag.js) - Google Analytics