GridBagLayout布局管理器比较复杂,参数也比较多,参数是
newGridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,fill,insert,ipadx,ipady);
每个参数的含义
gridx,gridy
设置组件的位置,gridx设置为GridBagConstraints.RELATIVE代表此组件位于之前所加入组件的右边。
gridy设置为GridBagConstraints.RELATIVE代表此组件位于以前所加入组件的下面。
建议定义出gridx,gridy的位置以便以后维护程序。gridx=0,gridy=0时放在0行0列。
gridwidth,gridheight
用来设置组件所占的单位长度与高度,默认值皆为1。
你可以使用GridBagConstraints.REMAINDER常量,代表此组件为此行或此列的最后一个组件,而且会占据所有剩余的空间。
weightx,weighty
用来设置窗口变大时,各组件跟着变大的比例。
当数字越大,表示组件能得到更多的空间,默认值皆为0。
anchor
当组件空间大于组件本身时,要将组件置于何处。
有CENTER(默认值)、NORTH、NORTHEAST、EAST、SOUTHEAST、WEST、NORTHWEST选择。
insets
设置组件之间彼此的间距。
它有四个参数,分别是上,左,下,右,默认为(0,0,0,0)。
ipadx,ipady
设置组件间距,默认值为0。
下面是一个小例子
package com.dr.swt.xuechengxitong;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
@SuppressWarnings("serial")
public class Teste3 extends JFrame{
private static JTextArea jTextArea;
private JButton jButton1;
private JButton jButton2;
private JButton jButton3;
public Teste3(){
GridBagLayout gridbag = new GridBagLayout();
this.setLayout(gridbag);
JScrollPane scroll = new JScrollPane(getJtextArea(),
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
gridbag.setConstraints(scroll, new GridBagConstraints(0, 0, 3,
2, 1.0, 1.0,GridBagConstraints.CENTER,
GridBagConstraints.BOTH, new Insets(100, 100, 100, 100),
0, 0));
gridbag.setConstraints(getJButton1(), new GridBagConstraints
(0, 2, 1, 1, 1.0, 0.0, GridBagConstraints.SOUTH,
GridBagConstraints.HORIZONTAL, new Insets(30, 200, 100,
100), 0, 0));
gridbag.setConstraints(getJButton2(), new GridBagConstraints
(1, 2, 1, 1, 1.0, 0.0,GridBagConstraints.SOUTH,
GridBagConstraints.HORIZONTAL, new Insets(30, 100, 100,
100), 0, 0));
gridbag.setConstraints(getJButton3(), new GridBagConstraints
(2, 2, 1, 1, 1.0, 0.0,GridBagConstraints.SOUTH,
GridBagConstraints.HORIZONTAL, new Insets(30, 100, 100,
200), 0, 0));
this.add(scroll);
this.add(getJButton1());
this.add(getJButton2());
this.add(getJButton3());
Dimension screenSize = Toolkit.getDefaultToolki().
getScreenSize();
int screenWidth = (int) screenSize.getWidth();
int screenHight = (int) screenSize.getHeight();
this.setSize(screenWidth, screenHight);
this.setVisible(true);
}
private JTextArea getJtextArea(){
if(jTextArea == null){
jTextArea = new JTextArea();
jTextArea.setLineWrap(true);
}
return jTextArea;
}
private JButton getJButton1(){
if(jButton1 == null){
jButton1 = new JButton("jButton1");
}
return jButton1;
}
private JButton getJButton2(){
if(jButton2 == null){
jButton2 = new JButton("jButton2");
}
return jButton2;
}
private JButton getJButton3(){
if(jButton3 == null){
jButton3 = new JButton("jButton3");
}
return jButton3;
}
public static void main(String args[]){
new Teste3();
}
}
分享到:
相关推荐
在Java Swing中,`GridBagLayout`是一种非常灵活的布局管理器,允许开发者精确控制组件在容器中的位置和大小。由于其灵活性,`GridBagLayout`成为创建复杂、自定义布局的理想选择,但它的确比其他布局管理器更复杂。...
### Java中GridBagLayout布局管理器的详细讲解 #### 一、引言 在Java图形用户界面(GUI)设计中,界面布局是非常重要的一个环节。合理的布局不仅能够提高应用程序的美观性,还能够提升用户体验。Java提供了多种...
GridBagLayout 布局管理器和 GridLayout 布局管理器不一样的是,一个组件不只是占一个网格位置,加入组件时,必须指明一个对应的参数。 布局管理器的工作过程是,每个容器保存一个对一个布局管理器的引用,这个布局...
GridBagLayout是最灵活但也是最复杂的布局管理器。它允许组件在网格中占据任意大小的空间,并可以设置组件的水平和垂直对齐方式,以及权重来决定多余空间如何分配。GridBagConstraints对象用来设置每个组件的约束...
本讲主要探讨了五种常用的布局管理器:FlowLayout、BorderLayout、CardLayout、GridLayout以及GridBagLayout。 1. FlowLayout:流式布局管理器是Java中最基础的布局管理器,也是Panel和Applet类的默认布局。它按照...
在Java图形用户界面编程中,Swing作为一套强大的工具包,为开发者提供了丰富的组件和功能,其中布局管理器是构建美观且易于维护的GUI应用程序的关键部分。布局管理器负责自动地控制组件在容器中的位置和大小,从而...
Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout。FlowLayout是最简单的布局,按照从左到右、从上到下的顺序排列组件。BorderLayout将界面分为五个区域:北、南、东...
- GridBagLayout:最灵活的布局管理器,允许自定义组件大小和位置,但使用较为复杂。 2. **Android布局管理器**: - Linear Layout:沿着垂直或水平方向线性排列子视图。 - Relative Layout:根据相对位置关系来...
Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout、GridBagLayout等,每种都有其特定的布局策略。 3. **主要布局管理器及其特点** - **FlowLayout**:从左到右,从上到下依次排列组件,如果一行...
在Java GUI编程中,`GridBagLayout`是一个强大的布局管理器,它允许开发者精确地控制组件在容器中的位置和大小。与其他布局管理器不同,`GridBagLayout`提供了更大的灵活性,使得开发者能够创建复杂的界面布局。以下...
本压缩包"布局管理器示例代码.rar"显然包含了一些关于如何在实际应用中使用布局管理器的示例代码。这里我们将详细讨论布局管理器及其在GUI编程中的作用,以及一些常见的布局管理器类型。 布局管理器是GUI框架如Java...
在众多的布局管理器中,`GridBagLayout` 是最为灵活,但也最为复杂的。它允许开发者精确地控制组件的位置和大小,以适应各种复杂的布局需求。 在`GridBagLayout`中,有几个核心参数对于理解和使用该布局管理器至关...
7. GridBagLayout:这是最灵活但也是最复杂的布局管理器,允许精确控制每个组件的大小和位置,通过GridBagConstraints对象来设置约束条件。 在实际开发中,开发者通常会根据需要组合使用不同的布局管理器,甚至...
GridBagLayout是一种高度灵活且功能强大的布局管理器,在Java Swing图形用户界面编程中被广泛使用。相较于其他布局管理器如FlowLayout或BorderLayout,GridBagLayout提供更精细的控制能力,允许开发者精确地指定组件...
在Java Swing中,`GridBagLayout`是一种灵活的布局管理器,它允许开发者精确地控制组件在容器中的位置和大小。而`JTable`是Swing提供的一种用于展示表格数据的组件,通常用于数据的显示、编辑和排序。这篇博客文章...
Java提供了多种内置的布局管理器,如FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout,每种都有其特定的布局策略。开发者可以根据需求选择合适的布局管理器,以实现美观且功能完善的用户界面。 *...
Java 标准库中已经包含了数种内置的布局管理器,如 FlowLayout、GridLayout、BorderLayout 和 GridBagLayout,但 JBuilder 扩展了这一功能,提供了更高级和定制化的布局解决方案。 `jbcl.jar` 中可能包含以下布局...
在Java Swing的标准布局管理器中,如GridLayout、BorderLayout或GridBagLayout,实现这种网格布局可能需要编写大量代码,而DesignGridLayout则通过更直观的方法实现了这一目标。 DesignGridLayout的特点包括: 1. ...