我遇到了一个不寻常的问题,即 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)
. 任何想法为什么会这样?