当前位置: 首页 > 知识库问答 >
问题:

在交替列GridBagLayout中设置组件

缑高朗
2023-03-14

有没有办法在交替列0、2、4、6中设置组件,而不使用GridBagConstraint在GridBagLayout中填充1、3、5的空组件?

Java中的示例将第5个按钮设置为从第1列开始,但可能是因为它上面的行已经设置了?
https://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

共有2个答案

潘学民
2023-03-14

您可以使用行高和列宽定义GridBagLayout

int[]  rowHeights = new int[] { 50, 50, 50};
int[] columnWidths = new int[] { 100, 100, 100, 100, 100};
GridBagLayout layout = new GridBagLayout();
layout.rowHeights = rowHeights;
layout.columnWidths = columnWidths;

使用GridBagConstraint添加组件,如下所示

    JPanel panel = new JPanel();
    panel.setLayout(layout);

    JLabel label1 = new JLabel("Label 1");
    JLabel label2 = new JLabel("Label 2");
    JLabel label3 = new JLabel("Label 3");

    panel.add(label1,  new GridBagConstraints(
            0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, 
            new Insets(0,0, 0, 0), 0, 0));

    panel.add(label2,  new GridBagConstraints(
            2, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, 
            new Insets(0,0, 0, 0), 0, 0));

    panel.add(label3,  new GridBagConstraints(
            4, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, 
            new Insets(0,0, 0, 0), 0, 0));
欧阳衡
2023-03-14

是否有办法在交替列0、2、4、6中设置组件,而不在GridBagLayout中用空组件填充1、3、5

不。如果没有为单元格定义组件,那么它的大小基本上是0。

布局无法猜测“空列”的大小。

也许您可以使用“内嵌”约束来给列之间留出空间。

 类似资料:
  • 我正在寻找一种通用的方法来组合两个矩阵,以便两个初始矩阵中的列在新矩阵中交替出现 col1m1。。。col1m2。。。col2m1。。。二氧化碳。。。col3m1。。。col3m2。。。。。。 例如: 我正在寻找一种通用的方法,因为我将有多于3列的矩阵组合。我尝试了一些for循环和一些if语句,但对我来说,它们并没有真正结合在一起。将矩阵与洗牌和交替相结合的搜索也没有被证明是有效的。有什么想法吗?

  • 嗨,我是java初学者,正在使用GridBagLayout制作小型GUI。请参阅附带的代码和输出。我想要的是按照gridx和gridy中分配的位置将JButtons放置在左上角。但它把组件放在中心,而不是像预期的左上角,如果我使用插图,gridx/Gridy所有的工作,但不是从适当的坐标,所以请看附上的代码和图像,并指导我关于它 输出:想要左上角的按钮,请指点

  • 交易设置说明 打开后台-订单-交易设置-基础设置 1.基础设置 1.自动收货时间:订单多长时间后自动收货,单位为/天(注:若为0,则订单不会自动收货) 2.订单自动关闭时间:订单开始后多长时间未付款自动关闭,单位为/分钟(注:不填写或0订单将不会自动关闭) 注:会在订单状态已关闭中显示 3.是否开启在线支付:开启后前台可选 4.是否开启余额支付:开启后前台可选 注:系统会自动优先选择余额支付,余额

  • 用户如何充值? 首先进入后台开启充值

  • 给定一个正数和负数(没有零)的数组,我必须以这样的方式排列它们:正数和负数应该连续排列。 正数和负数的数量可能不相等,也就是说,如果没有正数(或负数),那么所有剩余的负数(或正数)都会追加到数组的末尾。 顺序很重要,即如果输入数组是,那么输出数组应该是。代码在O(n)中完成,而不使用另一个数组。 这是我在java中的解决方案,我再次测试了几个案例并成功了。但是,我不确定这是否在O(n)时间内运行。

  • 问题内容: 我是否可以使用任何标准库调用来对两个数组执行集合操作,或者自己实现这种逻辑(在功能上和效率上都尽可能理想)? 问题答案: 是的,Swift 上课了。 Swift 3.0+可以对集合执行以下操作: Swift 2.0可以计算数组参数: Swift 1.2+可以在集合上进行计算: 如果使用自定义结构,则需要实现Hashable。 感谢Michael Stern在Swift 2.0更新的评论