GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的,
GridBagLayout 类是一个灵活的布局管理器,它不要求组件的大小相同便可以将组件垂直、水平或沿它们的基线对齐。
每个 GridBagLayout 对象维持一个动态的矩形单元网格,每个组件占用一个或多个这样的单元,该单元被称为显示区域。
下面就通过一个记事本案例去说明GridBagLayout的使用方法。
分析:
带有箭头的说明可以拉伸的。
4占用4个格子,6占用4个格子。如果设置6可以拉伸了,那么4也会跟着拉伸。
但是如果设置4拉伸,那么7所在的列也可以拉伸,所以4不能设置拉伸。我们应该设置4是跟随6进行拉伸。
灰色的线是为了看清布局的大概,组件占用的格子数。
运行时的显示效果:
public class GridBagDemo extends JFrame { public static void main(String args[]) { GridBagDemo demo = new GridBagDemo(); } public GridBagDemo() { init(); this.setSize(600, 600); this.setVisible(true); } public void init() { j1 = new JButton("打开"); j2 = new JButton("保存"); j3 = new JButton("另存为"); j4 = new JPanel(); String[] str = { "java笔记", "C#笔记", "HTML5笔记" }; j5 = new JComboBox(str); j6 = new JTextField(); j7 = new JButton("清空"); j8 = new JList(str); j9 = new JTextArea(); j9.setBackground(Color.PINK);// 为了看出效果,设置了颜色 GridBagLayout layout = new GridBagLayout(); this.setLayout(layout); this.add(j1);// 把组件添加进jframe this.add(j2); this.add(j3); this.add(j4); this.add(j5); this.add(j6); this.add(j7); this.add(j8); this.add(j9); GridBagConstraints s = new GridBagConstraints();// 定义一个GridBagConstraints, // 是用来控制添加进的组件的显示位置 s.fill = GridBagConstraints.BOTH; // 该方法是为了设置如果组件所在的区域比组件本身要大时的显示情况 // NONE:不调整组件大小。 // HORIZONTAL:加宽组件,使它在水平方向上填满其显示区域,但是不改变高度。 // VERTICAL:加高组件,使它在垂直方向上填满其显示区域,但是不改变宽度。 // BOTH:使组件完全填满其显示区域。 s.gridwidth = 1;// 该方法是设置组件水平所占用的格子数,如果为0,就说明该组件是该行的最后一个 s.weightx = 0;// 该方法设置组件水平的拉伸幅度,如果为0就说明不拉伸,不为0就随着窗口增大进行拉伸,0到1之间 s.weighty = 0;// 该方法设置组件垂直的拉伸幅度,如果为0就说明不拉伸,不为0就随着窗口增大进行拉伸,0到1之间 layout.setConstraints(j1, s);// 设置组件 s.gridwidth = 1; s.weightx = 0; s.weighty = 0; layout.setConstraints(j2, s); s.gridwidth = 1; s.weightx = 0; s.weighty = 0; layout.setConstraints(j3, s); s.gridwidth = 0;// 该方法是设置组件水平所占用的格子数,如果为0,就说明该组件是该行的最后一个 s.weightx = 0;// 不能为1,j4是占了4个格,并且可以横向拉伸, // 但是如果为1,后面行的列的格也会跟着拉伸,导致j7所在的列也可以拉伸 // 所以应该是跟着j6进行拉伸 s.weighty = 0; layout.setConstraints(j4, s); s.gridwidth = 2; s.weightx = 0; s.weighty = 0; layout.setConstraints(j5, s); s.gridwidth = 4; s.weightx = 1; s.weighty = 0; layout.setConstraints(j6, s); s.gridwidth = 0; s.weightx = 0; s.weighty = 0; layout.setConstraints(j7, s); s.gridwidth = 2; s.weightx = 0; s.weighty = 1; layout.setConstraints(j8, s); s.gridwidth = 5; s.weightx = 0; s.weighty = 1; layout.setConstraints(j9, s); } JButton j1; JButton j2; JButton j3; JPanel j4; JComboBox j5; JTextField j6; JButton j7; JList j8; JTextArea j9; }
相关推荐
Java中的GridBagLayout布局管理器是Java Swing中用于组织组件的一种高级布局策略,它提供了最大的灵活性,能够处理不同大小的组件并允许它们跨多个网格单元,甚至部分重叠。GridBagLayout通过GridBagConstraints对象...
GridBagLayout是一种高度灵活且功能强大的布局管理器,在Java Swing图形用户界面编程中被广泛使用。相较于其他布局管理器如FlowLayout或BorderLayout,GridBagLayout提供更精细的控制能力,允许开发者精确地指定组件...
在Java Swing中,`GridBagLayout`是一种非常灵活的布局管理器,允许开发者精确控制组件在容器中的位置和大小。由于其灵活性,`GridBagLayout`成为创建复杂、自定义布局的理想选择,但它的确比其他布局管理器更复杂。...
Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout、GridBagLayout等,每种都有其特定的布局策略。 3. **主要布局管理器及其特点** - **FlowLayout**:从左到右,从上到下依次排列组件,如果一行...
Java中的`GridBagLayout`是Swing库中最强大的布局管理器之一,允许开发者创建复杂的、自适应的用户界面。这个布局管理器通过一个网格来组织组件,每个组件可以在网格中占据一个或多个单元格,提供了极大的灵活性。...
在 Java 中,AWT 提供了五种类型的布局管理器:BorderLayout、CardLayout、FlowLayout、GridLayout 和 GridBagLayout。 1. BorderLayout 布局管理器 BorderLayout 布局管理器将容器分成北、南、东、西、中五个区域...
Java 网格包 GridBagLayout 布局管理器提供了一个灵活和复杂的布局管理方式,通过设置 weightx 和 weighty 参数来划分网格单元,然后使用 GridBagConstraints 类型的约束对象来设置组件的位置和大小。
这是为初初学者提供练习的代码,具有很强的指导效果哈~~~
Java中的GridBagLayout布局管理器是Java Swing中最复杂但也是最灵活的布局管理工具,它允许容器中的组件具有不同的大小,可以跨越多个网格,并且组件之间可以部分重叠。理解GridBagLayout的关键在于掌握它的网格单元...
Java中的GridBagLayout布局管理器是Java Swing中最复杂但也是最灵活的布局管理工具,它允许组件在容器中以不同的大小存在,甚至可以跨多个网格并部分重叠。这种布局管理器将容器划分为一系列网格单元,每个组件可以...
在Java GUI编程中,布局管理器是至关重要的组成部分,它负责控制组件在窗口中的位置和大小。本资源提供了五种常见的布局管理器的经典例子,帮助开发者更好地理解和运用这些管理器。下面将详细介绍这五种布局管理器...
- **Layout.java**:可能展示了如何创建和使用自定义的布局管理器,或者应用了BorderLayout、GridLayout或其他布局管理器来组织GUI元素。 - **TestTable.java**:正如其名,这个文件可能涉及了GridLayout的使用,...
本资料包"使用布局管理器布局界面.rar"聚焦于如何利用Java、C语言、C++、C#以及JSP等语言有效地设计和组织GUI组件。布局管理器是这些语言中的重要概念,它们自动调整组件的位置和大小,以适应不同分辨率和屏幕尺寸的...
### Java中GridBagLayout布局管理器的详细讲解 #### 一、引言 在Java图形用户界面(GUI)设计中,界面布局是非常重要的一个环节。合理的布局不仅能够提高应用程序的美观性,还能够提升用户体验。Java提供了多种...
Java Swing GridBagLayout,很详细的Demo,对GridBagLayout如何使用做全面的讲解
在`GridBagLayout`中,有几个核心参数对于理解和使用该布局管理器至关重要: 1. **gridx** 和 **gridy**: 这两个参数定义了组件在网格中的位置。它们分别代表组件的起始行和列,都是从0开始计算。例如,`gridx=0`,...
在Java GUI编程中,`GridBagLayout`是一个强大的布局管理器,它允许开发者精确地控制组件在容器中的位置和大小。与其他布局管理器不同,`GridBagLayout`提供了更大的灵活性,使得开发者能够创建复杂的界面布局。以下...
Java中的布局管理器可以分为七种:流布局管理器(FlowLayout)、边界布局管理器(BorderLayout)、网格布局管理器(GridLayout)、卡片布局管理器(CardLayout)、盒式布局管理器(BoxLayout)、网格袋布局管理器...
AWT(Abstract Window Toolkit)组件提供了六种布局管理器,分别是BorderLayout、FlowLayout、GridLayout、GridBagLayout、CardLayout和BoxLayout。这些布局管理器可以帮助开发者更好地管理组件在窗口中的排列。 1....