本文目录一览:
- 1、Java网格包布局,组件垂直间距怎么调
- 2、java网格布局中可以设置button的大小吗
- 3、java 使用网格布局后
- 4、java网格布局中放入多个容器的问题
- 5、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 的值都设置为零