`
luck_dream
  • 浏览: 21761 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Swing布局之GridBagLayout

阅读更多

终于用到一种如此灵活的布局了,她就是:GridBagConstraints,今天主要看了如下四个属性,改天在继续研究。

 

gridwidth: 指定在组件显示区域的一行中的单元格数。即组件在水平方向所占用的单元格个数

gridheight:指定在组件显示区域的一列中的单元格数。即组件在垂直方向所占用的单元格个数

参照如下代码:package j2se.layout;

import java.awt.Button;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JFrame;

public class GridBagLayoutTes3 extends JFrame {

	public void makebutton(JFrame frame, String name, GridBagLayout gridbag,
			GridBagConstraints c) {
		Button button = new Button(name);
		gridbag.setConstraints(button, c);
		c.fill = GridBagConstraints.BOTH;
		frame.add(button);
	}

	public static void main(String[] args) {
		GridBagLayoutTes3 test = new GridBagLayoutTes3();
		JFrame frame = new JFrame("Test");
		GridBagLayout gridbag = new GridBagLayout();
		GridBagConstraints c = new GridBagConstraints();
		frame.setSize(400, 200);
		frame.setLayout(gridbag);
		// 创建一个3*4的表格,前三个button为一行
		test.makebutton(frame, "Button1", gridbag, c);
		test.makebutton(frame, "Button2", gridbag, c);
		c.gridwidth = GridBagConstraints.REMAINDER; // 第一行结束
		test.makebutton(frame, "Button3", gridbag, c);
		// 即将添加的button占两列宽度
		c.gridwidth = 2;
		test.makebutton(frame, "Button4", gridbag, c);
		c.gridwidth = GridBagConstraints.REMAINDER; // 第二行结束
		test.makebutton(frame, "Button5", gridbag, c);

		// 即将添加的button占两行高度,一列宽度
		c.gridheight = 2;
		c.gridwidth = 1;// 每次使用完之后,记得要清除上次的状态,否则此时的gridwidth还是上次的GridBagConstraints.REMAINDER哦
		test.makebutton(frame, "Button6", gridbag, c);

		c.gridwidth = GridBagConstraints.REMAINDER; // 第三行结束
		c.gridheight = 1;//重置占用的高度为1行高度
		test.makebutton(frame, "Button7", gridbag, c);
		test.makebutton(frame, "Button8", gridbag, c);

		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}

 结果如图:


 

 

 

gridx:指定包含组件的显示区域开始边的单元格,其中行的第一个单元格为 gridx=0。 即指定组件所在的行的位置

gridy:指定位于组件显示区域的顶部的单元格,其中最上边的单元格为 gridy=0。       即指定组件所在的列的位置。

实际就是一组x,y坐标。

参照如下代码:

 

package j2se.layout;

import java.awt.Button;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JFrame;

public class GridBagLayoutTes2 extends JFrame {

	public void makebutton(JFrame frame, String name, GridBagLayout gridbag,
			GridBagConstraints c) {
		Button button = new Button(name);
		gridbag.setConstraints(button, c);
		c.fill = GridBagConstraints.BOTH;
		frame.add(button);
	}
	public static void main(String[] args) {
		GridBagLayoutTes2 test = new GridBagLayoutTes2();
		JFrame frame = new JFrame("Test");
		GridBagLayout gridbag = new GridBagLayout();
		GridBagConstraints c = new GridBagConstraints();
		frame.setSize(600, 400);
		frame.setLayout(gridbag);
		//此处绘制一个3*3的表格
		c.gridx = 0;
		c.gridy = 0;
		test.makebutton(frame, "Button1", gridbag, c);//Button1将被放在(0,0)位置
		c.gridx = 2;
		c.gridy = 2;
		test.makebutton(frame, "Button2", gridbag, c);//Button2将被放在(2,2)位置
		c.gridx = 1;
		c.gridy = 1;
		test.makebutton(frame, "Button3", gridbag, c);//Button3将被放在(1,1)位置

		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}
 

结果如图:


 
  • 大小: 8.8 KB
  • 大小: 11.5 KB
分享到:
评论

相关推荐

    Swing的GridBagLayout布局应用详解(附Java源代码)

    本文通过代码示例的方式介绍了Swing的GridBagLayout布局样式的应用,不拘泥于JDK文档教条方式的陈述,图形效果图与文字相结合,讲解直观而浅显易懂,另外,示例代码中还包含了BorderLayout、FlowLayout等布局的应用...

    java swing布局管理器实例之gridbaglayout,实现左右选择框.doc

    Java Swing 是一个用于构建图形用户界面(GUI)的框架,其中布局管理器是控制组件在窗口中排列的关键工具。在众多的布局管理器中,`GridBagLayout` 是最为灵活,但也最为复杂的。它允许开发者精确地控制组件的位置和...

    Swing布局管理器

    ### Swing布局管理器详解 #### 一、布局管理器概览 在Java图形用户界面编程中,Swing作为一套强大的工具包,为开发者提供了丰富的组件和功能,其中布局管理器是构建美观且易于维护的GUI应用程序的关键部分。布局...

    Java Swing布局管理器

    Java Swing 布局管理器 Java Swing 中的布局管理器是指在 Swing 应用程序中对组件进行布局和排列的机制。布局管理器是容器中的组件进行定位和整形的关键组件。在 Java 中,AWT 提供了五种类型的布局管理器:...

    html的table标签作配置,进行swing的GridBagLayout布局

    根据html的table标签作为配置文件,进行swing GridBagLayout方式的布局管理。简化swing复杂界面布局不方便,容器定位的问题。 具体思想是将tabel td等标签相关元素和属性映射成GridBagConstraints的属性值,将布局...

    Java Swing GridBagLayout网格袋布局的实现

    Java Swing GridBagLayout网格袋布局的实现 Java Swing GridBagLayout网格袋布局是Java Swing中一种常用的布局管理器,能够灵活地管理组件的布局。GridBagLayout通过将组件安排在网格单元格中来管理布局,每个组件...

    网袋布局管理器--GridBagLayout使用介绍

    在Java Swing中,`GridBagLayout`是一种非常灵活的布局管理器,允许开发者精确控制组件在容器中的位置和大小。由于其灵活性,`GridBagLayout`成为创建复杂、自定义布局的理想选择,但它的确比其他布局管理器更复杂。...

    java网格包GridBagLayout布局管理器专题

    Java中的GridBagLayout布局管理器是Java Swing中用于组织组件的一种高级布局策略,它提供了最大的灵活性,能够处理不同大小的组件并允许它们跨多个网格单元,甚至部分重叠。GridBagLayout通过GridBagConstraints对象...

    java_swing窗体布局

    Java Swing 窗体布局是Java图形用户界面(GUI)设计的重要组成部分,它决定了组件在窗口中的排列方式和外观。Swing提供了多种布局管理器,每种都有其独特的特性和用途,下面我们将详细讨论这些布局管理器。 1. **...

    Java_swing布局详解(附示例图).doc

    在Java Swing中,布局管理器是用来组织和控制窗口或组件在图形用户界面中显示的方式。它们决定了组件如何根据可用空间自动调整大小和位置。以下是几种常见的布局管理器及其特点: 1. **FlowLayout** FlowLayout是...

    java swing 布局管理

    6. ** GridBagLayout **:网格包布局,最灵活的布局管理器,允许组件在网格中占据不规则的空间。 7. ** GroupLayout **:用于JavaFX,但在Swing中也可用,提供了一种声明性的布局管理方式。 ### 2. 使用布局管理器 ...

    GridBagLayout布局器的使用

    Java Swing GridBagLayout,很详细的Demo,对GridBagLayout如何使用做全面的讲解

    GridBagLayout布局详解

    GridBagLayout 是 Java Swing 编程中的一种强大且灵活的布局管理器,它可以实现几乎所有你想要的布局。通过设置 GridBagConstraints 对象的参数,可以控制组件在显示区域中的位置、大小和填充方式。 ...

    Java Swing 布局

    Java Swing布局是构建图形用户界面(GUI)时用于组织组件的重要工具。Swing提供了一系列的布局管理器,帮助开发者在窗口或容器内合理地排列和调整组件的位置与大小。了解和掌握这些布局管理器能够帮助我们创建出美观...

    理解 Swing 和布局管理程序

    理解Swing和布局管理程序的关键在于掌握如何根据需求选择合适的布局管理器,并能灵活调整组件的属性。例如,使用FlowLayout创建简单的工具栏,使用BorderLayout组织主窗口的结构,或者使用GridBagLayout创建复杂的...

    Swing之入门PPT.布局

    Swing提供了多种内置的布局管理器,如 FlowLayout、BorderLayout、GridLayout、CardLayout 和 GridBagLayout,每种都有其特定的用途和行为。 例如,FlowLayout按照从左到右、从上到下的顺序排列组件,适合简单的一...

    (完整word版)Java-swing布局详解(附示例图).doc

    在本文中,我们将详细介绍 Java Swing 中的布局管理器,包括 FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout 和 GridBagLayout。 FlowLayout 是 Java Swing 中最简单的布局管理器。它按照从左到右的...

    swing多个jpanel布局切换实例

    Swing提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout等。在"swing多个布局切换实例"中,我们主要关注CardLayout,它是用于在面板上切换多个视图的理想选择。 ...

    Java中GridBagLayout的用法

    GridBagLayout是一种高度灵活且功能强大的布局管理器,在Java Swing图形用户界面编程中被广泛使用。相较于其他布局管理器如FlowLayout或BorderLayout,GridBagLayout提供更精细的控制能力,允许开发者精确地指定组件...

Global site tag (gtag.js) - Google Analytics