【问题标题】:How do I get the width & height of each grid cell in GridBagLayout?如何获取 GridBagLayout 中每个网格单元格的宽度和高度?
【发布时间】:2015-12-16 17:17:53
【问题描述】:

我在任何地方寻求 GridBagLayout 的帮助都只对 GridBagConstraints 有帮助。我完全理解那部分,是 GridBagLayout 中的方法让我感到困惑。

所以我意识到 columnWidths 和 rowHeights 字段用于覆盖 GridBagLayout 的单元格宽度和高度,并且在用户设置之前为空。 (我在下面的程序中实现了这些字段)那么如何获得单元格的实际宽度和高度?

我基本上是在尝试覆盖容器的paint 方法,以绘制一个网格来显示每个单元格的开始和结束位置(其中gridwidth 和gridheight 无关紧要)。看起来适用的一件事是 getLayoutInfo(Container parent, int sizeflag),但 GridBagLayoutInfo 没有方法或字段,我不知道 sizeflag 是什么意思。

编辑: 这基本上是我想要绘制的网格,但我当然想确保它可以在任何以 gridlayout 为布局管理器的容器上工作。这些是以红色突出显示的实际 gridx 和 gridy 坐标。我只是不知道如何获得我需要的值来绘制方法。

【问题讨论】:

  • 如果你找不到不覆盖的东西,试着找到单个按钮的组合高度(使用一个简单的循环)和每个单独按钮的组合宽度。例如,从 ctrl 到右箭头键的所有键都有一定的长度,将它们相加。接下来找到从右箭头键到删除键的高度,然后将它们全部加起来。将这些值存储在变量 (x, y) 中。
  • 这行不通。每个按钮的最小网格宽度为 4。我想创建一个网格,其中每个 gridx 和 gridy 坐标都有一条线。所有 61 个 gridx 坐标和 12 个 gridy 坐标。

标签: java methods gridbaglayout column-width row-height


【解决方案1】:

GridBagLayout 有一个方法getLayoutDimensions(),它返回两个数组的数组。第一个数组是列宽,第二个数组是行高。此方法将每个单元格的 GridBagConstrains 中设置的 insets 视为单元格的一部分。

我知道这个问题已经过时了,但我最近遇到了类似的问题,并在寻找解决方案时发现了它。

【讨论】:

    猜你喜欢
    • 2011-08-20
    • 1970-01-01
    • 2012-11-23
    • 2019-06-21
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    相关资源
    最近更新 更多