gpt4 book ai didi

java - GridBagLayout 管理器和调整控件大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:42:45 24 4
gpt4 key购买 nike

我不确定 GridBagLayoutManager 是否是唯一执行此操作的布局管理器,但这是我的问题。我在 GridBagLayout 中水平放置了 4 个控件。为简化此示例,每个控件均占窗体的 1/4,并且每个控件按与其他控件相同的比例调整大小。这四个控件是 JTextField,其中每个文本字段映射到 ResultSet 记录中的一列。表单上的附加控件允许人们浏览记录。

如果我从一个记录导航到下一个记录,那么文本字段会更新它们的文本以显示新数据。但是,文本字段也会根据它们显示的文本量自动调整大小...具有大量数据的文本字段会扩大大小,而具有较小数据量的文本字段会被压扁。如果我在 ResultSet 中运行 10 条记录,那么控件总是会自行调整大小,至少可以说这看起来很奇怪。

我想做的是防止调整这些控件的大小,除非(并且直到)底层容器被调整大小。因此,如果我调整窗口大小,那么我希望控件调整大小(根据布局中的“weight x”变量),但我不希望控件调整大小只是因为它们显示的文本量变得更多或更少。

这里有人有什么想法吗?

最佳答案

对于 JTextField(如内容中所述)调用 setColumns(int) 以设置文本的首选大小。

对于 JComboBox,调用 setPrototypeDisplayValue(Object),这将导致呈现该值并设置 JComboBox 的首选大小基于该值。

通常,您可以直接在任何组件上调用 setPreferredSize(Dimension) 以获得相同的行为。 General 如果未设置,则根据组件上的一些默认值计算该值。 JTextFieldJComboBox 和大多数 JTextComponent 衍生产品发生了什么。这些组件的首选大小是由用户能够更改的值(文本值、组合框选择)驱动的。而对于大多数其他组件(JButtonJCheckBox 等),当用户对其进行操作时,内容大小不会真正改变。设置列和行以及原型(prototype)显示值会固定用于计算首选大小的值。

关于java - GridBagLayout 管理器和调整控件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1119795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com