我有一個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