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

如何使组件占据GridBagLayout中的所有可用空间?

通奕
2023-03-14

在Swing应用程序中,我有一个使用GridBagLayout的面板。在这里,我有3列,其中一列中有一个JTextField。我想要的是设置这个JTextField的宽度(使用setPreferredSize()方法),以便它占用其列的所有可用空间。

据我所知,列的宽度是根据我使用GridBagConstraint分配给它们的权重计算的。我试图从面板的宽度中减去同一行其他组件的宽度之和,但这似乎不起作用,显然是因为边距和插页不同。

那么,如何让我的JTextField占据所有可用空间?

共有1个答案

蔺昊穹
2023-03-14

看看。。。

  • GridBagConstraints。权重x
  • GridBagConstraints。填充

这些将允许您控制组件如何填充给定单元格,以及一个单元格相对于其他单元格的“权重”大小

 类似资料:
  • 问题内容: 我试图为javafx创建一个自定义组件,所以我让我的类扩展javafx.scene.control.Control并在构造函数上绘制其内容。 我的疑问是:如何使其“增长”以填充其父布局上的所有可用空间?就像当我放置一个TextArea时一样… 这是我正在做的精简示例: 在此示例中,TextArea将获得布局为其提供的所有空间。我希望我的组件也一样! 我已经尝试做的所有事情:-更改属性s

  • 问题内容: 这是代码: 如何在保持同一行的同时使输入元素扩展为填充所有剩余空间?如果我100%投入,它会走自己的线… 问题答案: 可以在IE7 +和所有现代浏览器中使用。 在首先必须走在HTML。有点令人反感,但值得一看。 关键步骤是使用:为何需要这样做的解释如下: 多余的跨度是必需的,因为它对以下内容没有影响:[CSS/DOM中的什么阻止了带有display:块的输入框扩展到其容器的大小

  • 我正在尝试创建一个聊天窗口,但我似乎不知道如何使JTextArea占据GridBagLayout中可用宽度空间的最大80%。换言之,如果文本似乎占据了窗口的整个宽度,那么它应该只能占据宽度的80%,只需换行即可。此外,如果文本小于80%,比如说40%,那么JTextArea应该只包装40%,而不是整个80% 我使用的是GridBagLayout,我已将GridBagConstraints weig

  • 问题内容: 所以我在布局文件中的RecyclerView遇到了一些麻烦 这里是: android:paddingRight=”@dimen/abc_action_bar_default_padding_material” android:paddingLeft=”@dimen/abc_action_bar_default_padding_material” /> RecyclerView是可见的并

  • 问题内容: 在设置为GridLayout的JPanel中,我彼此之间有一系列组件。我需要暂时隐藏组件,但setVisible(false) 不要剪切它们,因为组件所在的位置仍然存在空白。 有没有快速简便的方法来做到这一点?还是我必须保留 JPanel的状态,删除组件,然后还原它?the state of the JPanel, removing the components, then resto

  • 我正在尝试使用GridBagLayout创建一个带有Swing的布局。 我想在按钮旁边放置一个组合框,其中按钮的大小是恒定的,组合框将填充行中的所有可用空间: 但是,如果我放大窗口,组合框和按钮之间会出现空白: 如何布局此表单,使组合框填满所有空间,即使窗口已调整大小? 组件的布局代码(Scala):