您的位置:

java网格布局中(网格法平面布局)

本文目录一览:

Java网格包布局,组件垂直间距怎么调

GridBagLayout里的各种设置都必须通过GridBagConstraints,因此当我们将GridBagConstraints的参数都设置

好了之后,必须new一个GridBagConstraints的对象出来,以便GridBagLayout使用。

参数说明:

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。

java网格布局中可以设置button的大小吗

setSize(intx,inty)直接设置大小setBounds(intx,inty,intwidth,intheight)由x和y指定左上角的新位置,由width和height指定新的大校

java 使用网格布局后

你可以格式下,我想你大概要的这种效果,给你代码可以参考下:

import java.awt.*;

import javax.swing.*;

import java.awt.GridLayout;

@SuppressWarnings("serial")

public class LoginIFrame extends JFrame {

public static void main(String[] args) {

JFrame jf = new JFrame("注册");

JPanel jpanel = new JPanel();

jf.setContentPane(jpanel);

// 设置窗口在屏幕中居中显示

double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth();

double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight();

int x = (int) (width - 300) / 2;

int y = (int) (height - 250) / 2;

jf.setBounds(x, y, 300, 150);

// 添加标签组件

GridLayout gird = new GridLayout(3, 0);

JPanel jpanel1 = new JPanel();

JPanel jpanel2 = new JPanel();

JPanel jpanel3 = new JPanel();

jpanel.setLayout(gird);

jpanel.add(jpanel1);

jpanel.add(jpanel2);

jpanel.add(jpanel3);

JLabel name = new JLabel("用   户  名:");

JTextField nametext = new JTextField(10);

JLabel pwd = new JLabel("密         码:");

JPasswordField pwd1 = new JPasswordField(10);

JLabel pwd2 = new JLabel("确认密码:");

JPasswordField pwd3 = new JPasswordField(10);

jpanel1.add(name);

jpanel1.add(nametext);

jpanel2.add(pwd);

jpanel2.add(pwd1);

jpanel3.add(pwd2);

jpanel3.add(pwd3);

jf.getLayeredPane().setLayout(null);

jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

jpanel.setOpaque(false);

jpanel1.setOpaque(false);

jpanel2.setOpaque(false);

jpanel3.setOpaque(false);

jf.setVisible(true);

}

}

效果:

满意请采纳!

java网格布局中放入多个容器的问题

你可以看javaAPI中GridLayout类里有一句话,是这样说的:

通过构造方法或 setRows 和 setColumns 方法将行数和列数都设置为非零值时,指定的列数将被忽略。列数通过指定的行数和布局中的组件总数来确定。

仅当将行数设置为零时,指定列数才对布局有效。

所以你把GridLayout的第一个参数改成0就能保证永远是一列了。否则的话,如果控件的数量不等于你指定的行列之积,那么会保持行数不变,而列数会变化,列数=总控件数 / 你指定的行数。

有问题仔细读读API,很多时候就能找到答案。

java中界面设计的网格布局怎样设计边距

GridLayout有三种构造方法。第三种方法可以设计边距

构造方法详细信息

1。GridLayout

public GridLayout()

创建具有默认值的网格布局,即每个组件占据一行一列。

从以下版本开始:

JDK1.1

2。GridLayout

public GridLayout(int rows,

int cols)

创建具有指定行数和列数的网格布局。给布局中的所有组件分配相等的大小。

rows 和 cols 中的一个可以为零(但不能两者同时为零),这表示可以将任何数目的对象置于行或列中。

参数:

rows - 该 rows 具有表示任意行数的值零。

cols - 该 cols 具有表示任意列数的值零。

3。GridLayout

public GridLayout(int rows,

int cols,

int hgap,

int vgap)

创建具有指定行数和列数的网格布局。给布局中的所有组件分配相等的大小。

此外,将水平和垂直间距设置为指定值。水平间距将置于列与列之间。将垂直间距将置于行与行之间。

rows 和 cols 中的一个可以为零(但不能两者同时为零),这表示可以将任何数目的对象置于行或列中。

所有 GridLayout 构造方法都服从这一规定。

参数:

rows - 该 rows 具有表示任意行数的值零

cols - 该 cols 具有表示任意列数的值零

hgap - 水平间距

vgap - 垂直间距

抛出:

IllegalArgumentException - 如果将 rows 和 cols 的值都设置为零