【发布时间】:2019-06-05 13:18:44
【问题描述】:
我正在使用 GridBagLayout 编写一个简单的 awt 程序,其中我有四个使用 gridx、gridy 对角排列的按钮。当我将 gridwidth 设置为 3 时,它只跨越 2 列,并且忽略了他自己的列。 gridheight 也是一样的(跨度少 1 行)。
import java.applet.Applet;
import java.awt.Button;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
public class Second extends Applet{
@Override
public void init()
{
GridBagLayout bl = new GridBagLayout();
this.setLayout(bl);
GridBagConstraints gc = new GridBagConstraints();
gc.gridx = 0;
gc.gridy= 0;
gc.gridwidth = 4;
gc.fill = GridBagConstraints.HORIZONTAL;
Button btemp = new Button("Button1");
add(btemp, gc);
gc.gridx = 1;
gc.gridy= 1;
gc.gridwidth = 1;
add(new Button("Button2"), gc);
gc.gridx = 2;
gc.gridy= 2;
add(new Button("Button3"), gc);
gc.gridx = 3;
gc.gridy= 3;
add(new Button("Button4"), gc);
setVisible(true);
}
}
【问题讨论】:
-
我知道这不能回答您的问题,但您是否研究过 JavaFX 框架?在新版本的 java 中成为标准,并且可以更容易地在(XML 布局!)中编写 GUI
-
您的代码未将网格宽度设置为 3。
-
@MeetTitan 我是老师,我们有旧的教学大纲
-
@VGR gridwidth 为 4,但它跨越 3 列,它忽略了他自己的列
-
一个GridBagLayout有灵活的行和列;仅使用四列不会创建四个相同大小的列。 GridBagLayout 中的列(或行)不占用任何空间,除非其中包含定义其大小的组件。
标签: java awt layout-manager gridbaglayout