我有一个JPanel内部的所有对象采用JTextField大小的异常问题。即使我试图强制其他对象的大小,他们仍然将文本字段指定的大小视为自己的大小。例如,我试图建立一个单一的面板在它自己的方法如下:Java Swing JPanel对象大小全部匹配JTextField大小
private JPanel setupID() {
JLabel projLbl = new JLabel("Project ID:");
JButton verifyBtn = new JButton("Verify ID");
projID = new JTextField(25);
verifyBtn.setToolTipText("Verifies that the entered ID is not already in use.");
JPanel theID = new JPanel(new GridLayout(1,0));
theID.add(projLbl);
theID.add(projID);
theID.add(verifyBtn);
return theID;
}
什么我最终是看起来像这样的窗口...... 的
JFrame frame;
,这是正装成为具有调用它的frame.pack()
方法来自动调整帧大小。如果我在不同区域(例如WEST,CENTER,EAST)的BorderLayout()
中创建单个对象,它们将按预期工作,但是当它们加载到面板中时,它们的大小均基于JTextField(25)
。任何想法,为什么这是?
这是GridLayout的行为。如果您想要更多地控制GUI中每个组件的大小,则需要选择其他LayoutManager。要快速查看标准布局管理器之间的差异,请选中[此处](http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)。 –
@代码大师你真的需要做出答案并添加一个例子! – MadProgrammer
感谢链接代码大师,这有助于描述不同的布局类型。 – DGolberg