【发布时间】:2012-09-15 09:04:16
【问题描述】:
以下代码方便地创建了一个框布局,但我遇到的问题是文本字段占据了整行。它应该假定它被指定的参数长度。
public void makeControlpanel(){
JPanel controlpanel = new JPanel();
//SET PANEL LAYOUT MANAGERS
controlpanel.setLayout(new BoxLayout(controlpanel,BoxLayout.PAGE_AXIS));
controlpanel.setBorder(BorderFactory.createTitledBorder("Create Control file"));
filenameC = new JLabel("Filename");
filenameBad = new JLabel("Bad Filename");
filenameDis = new JLabel("Discard Filename");
// fields
fileField = new JTextField(1);
badfileField = new JTextField(7);
discardfileField = new JTextField(7);
【问题讨论】:
-
你读过这个:docs.oracle.com/javase/tutorial/uiswing/layout/box.html 吗?一般来说,布局管理器有权覆盖组件大小等属性。
-
要么使用允许微调的 LayoutManager,要么使用 JTextField 的子类返回 maxSize。推荐前者,反正你需要一个更强大的 LayoutManager。
标签: java swing layout-manager boxlayout