1

嘿,我只是想知道是否有办法将 JTextField 宽度设置为例如屏幕大小的 50%。我知道如何获取屏幕的尺寸只是 JTextField 将其设置为字符数而不是像素

textfield = new JTextField("你好", 20);

有没有办法做到这一点 ?

4

2 回答 2

2

以像素为单位设置大小JTextField会导致您走上使用绝对定位的道路,这通常是不可取的。从没有布局管理器的情况下

尽管可以不使用布局管理器,但您应该尽可能使用布局管理器。布局管理器也可以很容易地被其他容器以及其他程序重用。

Have a look at the functionality offered by existing layout managers and avoid using the setXXXSize() component methods. For example, GridLayout ( or even GridBagLayout) can be used to size a JTextField width to 50% of a frame client area.

于 2012-12-12T21:39:13.190 回答
-1

您可以使用 setSize() 方法来设置 JTextField 组件的大小。

public void setSize(int width,
                    int height)

调整此组件的大小,使其具有宽度宽度和高度高度。参数: width - 此组件的新宽度(以像素为单位) height - 此组件的新高度(以像素为单位)

Javadoc:http ://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Component.html#setSize (int , int)

编辑: 添加到 GridLayout 的任何组件都将调整为与添加的最大组件相同的大小。如果您希望组件保持其首选大小,则将该组件包装在 JPanel 中,然后面板将调整大小:

也使用setPreferredSize代替setSize.

于 2012-12-12T21:20:56.453 回答