GridBagLayout 类是一个灵活的布局管理器,它不要求组件的大小相同即可将组件垂直和水平对齐。
* 每个 GridBagLayout 对象维持一个动态的矩形单元网格,每个组件占用一个或多个这样的单元,称为 显示区域。
* 每个由 GridBagLayout 管理的组件都与 GridBagConstraints 的实例相关联。
* Constraints 对象指定组件在网格中的显示区域以及组件在其显示区域中的放置方式。除了 Constraints 对象之外,
* GridBagLayout 还考虑每个组件的最小和首选大小,以确定组件的大小。
* 网格的总体方向取决于容器的 ComponentOrientation 属性。对于水平的从左到右的方向,
* 网格坐标 (0,0) 位于容器的左上角,其中 X 向右递增,Y 向下递增。对于水平的从右到左的方向,
* 网格坐标 (0,0) 位于容器的右上角,其中 X 向左递增,Y 向下递增。
* 为了有效使用网格包布局,必须自定义与组件相关联的一个或多个 GridBagConstraints 对象。
* 可以通过设置一个或多个实例变量来自定义 GridBagConstraints 对象:
import javax.swing.*;
import java.awt.*;
public class GridBagLayout1 {
public GridBagLayout1() {
super();
}
public static void main(String[] args) {
GridBagFrame gf = new GridBagFrame();
gf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gf.setVisible(true);
}
}
class GridBagFrame extends JFrame {
GridBagFrame() {
setTitle("Hello GridBagLayout");
setSize(400, 200);
Container c = getContentPane();
GridBagPanel g = new GridBagPanel();
c.add(g);
}
}
class GridBagPanel extends JPanel {
GridBagPanel() {
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setFont(new Font("SansSerif", Font.PLAIN, 14));
setLayout(gridbag);
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
makebutton("Button1", gridbag, c);
makebutton("Button2", gridbag, c);
makebutton("Button3", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; // end row
makebutton("Button4", gridbag, c);
c.weightx = 0.0; // reset to the default
makebutton("Button5", gridbag, c); // another row
c.gridwidth = GridBagConstraints.RELATIVE; // next-to-last in row
makebutton("Button6", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; // end row
makebutton("Button7", gridbag, c);
c.gridwidth = 1; // reset to the default
c.gridheight = 2;
c.weighty = 1.0;
makebutton("Button8", gridbag, c);
c.weighty = 0.0; // reset to the default
c.gridwidth = GridBagConstraints.REMAINDER; // end row
c.gridheight = 1; // reset to the default
makebutton("Button9", gridbag, c);
makebutton("Button10", gridbag, c);
}
protected void makebutton(String name, GridBagLayout gridbag,
GridBagConstraints c) {
Button button = new Button(name);
gridbag.setConstraints(button, c);
add(button);
}
分享到:
相关推荐
这是为初初学者提供练习的代码,具有很强的指导效果哈~~~
Java中的GridBagLayout布局管理器是Java Swing中用于组织组件的一种高级布局策略,它提供了最大的灵活性,能够处理不同大小的组件并允许它们跨多个网格单元,甚至部分重叠。GridBagLayout通过GridBagConstraints对象...
Java 网格包 GridBagLayout 布局管理器专题 Java 网格包 GridBagLayout 布局管理器是 Java 语言中最复杂和灵活的布局管理器之一。与网格布局管理器不同的是,网格包布局管理器允许容器中各个组件的大小各不相同,还...
Java中的GridBagLayout布局管理器是Java Swing中最复杂但也是最灵活的布局管理工具,它允许组件在容器中以不同的大小存在,甚至可以跨多个网格并部分重叠。这种布局管理器将容器划分为一系列网格单元,每个组件可以...
Java中的GridBagLayout布局管理器是Java Swing中最复杂但也是最灵活的布局管理工具,它允许容器中的组件具有不同的大小,可以跨越多个网格,并且组件之间可以部分重叠。理解GridBagLayout的关键在于掌握它的网格单元...
### Java中GridBagLayout布局管理器的详细讲解 #### 一、引言 在Java图形用户界面(GUI)设计中,界面布局是非常重要的一个环节。合理的布局不仅能够提高应用程序的美观性,还能够提升用户体验。Java提供了多种...
在Java Swing中,`GridBagLayout`是一种非常灵活的布局管理器,允许开发者精确控制组件在容器中的位置和大小。由于其灵活性,`GridBagLayout`成为创建复杂、自定义布局的理想选择,但它的确比其他布局管理器更复杂。...
GridBagLayout 布局管理器和 GridLayout 布局管理器不一样的是,一个组件不只是占一个网格位置,加入组件时,必须指明一个对应的参数。 布局管理器的工作过程是,每个容器保存一个对一个布局管理器的引用,这个布局...
Java中的`GridBagLayout`是Swing库中最强大的布局管理器之一,允许开发者创建复杂的、自适应的用户界面。这个布局管理器通过一个网格来组织组件,每个组件可以在网格中占据一个或多个单元格,提供了极大的灵活性。...
AWT(Abstract Window Toolkit)组件提供了六种布局管理器,分别是BorderLayout、FlowLayout、GridLayout、GridBagLayout、CardLayout和BoxLayout。这些布局管理器可以帮助开发者更好地管理组件在窗口中的排列。 1....
GridBagLayout是最灵活但也是最复杂的布局管理器。它允许组件在网格中占据任意大小的空间,并可以设置组件的水平和垂直对齐方式,以及权重来决定多余空间如何分配。GridBagConstraints对象用来设置每个组件的约束...
在本文中,我们将详细介绍 Java Swing 中的布局管理器,包括 FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout 和 GridBagLayout。 FlowLayout 是 Java Swing 中最简单的布局管理器。它按照从左到右的...
本讲主要探讨了五种常用的布局管理器:FlowLayout、BorderLayout、CardLayout、GridLayout以及GridBagLayout。 1. FlowLayout:流式布局管理器是Java中最基础的布局管理器,也是Panel和Applet类的默认布局。它按照...
5. **GridBagLayout**:这是一种非常灵活的布局管理器,允许单个组件占据多个网格单元。使用GridBagLayout时,需要为每个组件指定一个`GridBagConstraints`对象来控制组件的位置、大小以及其他属性。GridBagLayout...
Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout。FlowLayout是最简单的布局,按照从左到右、从上到下的顺序排列组件。BorderLayout将界面分为五个区域:北、南、东...
- GridBagLayout:最灵活的布局管理器,允许自定义组件大小和位置,但使用较为复杂。 2. **Android布局管理器**: - Linear Layout:沿着垂直或水平方向线性排列子视图。 - Relative Layout:根据相对位置关系来...
该资源涵盖了 Java 高级程序设计实战教程的多个方面,包括 Java GUI 编程、GridBagLayout 布局管理器、事件处理、Client/Server 架构、Java 编程语言、系统设计、Java 变量和数据类型、Java 控制结构等。
在我们的应用程序中,我们使用了 JFrame 作为应用程序的主框架,Container 作为容器,GridBagLayout 作为布局管理器。 计算器的布局 我们的计算器应用程序使用 GridBagLayout 布局管理器来布局所有组件。...
Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout、GridBagLayout等,每种都有其特定的布局策略。 3. **主要布局管理器及其特点** - **FlowLayout**:从左到右,从上到下依次排列组件,如果一行...