謝謝所有幫助我處理JTextField問題的人。我通過使用BorderLayout.PAGE_START將JTextField成功添加到帶有邊框佈局的框架中。 但現在我無法編輯JTextField的寬度。只有高度在變化。 請看下劃線。[這會改變JTextField的高度,但寬度不會改變]。無法在帶有邊框佈局的JFrame中編輯JTextField的寬度
是邊框佈局一直延伸到組件的最大寬度?
謝謝所有幫助我處理JTextField問題的人。我通過使用BorderLayout.PAGE_START將JTextField成功添加到帶有邊框佈局的框架中。 但現在我無法編輯JTextField的寬度。只有高度在變化。 請看下劃線。[這會改變JTextField的高度,但寬度不會改變]。無法在帶有邊框佈局的JFrame中編輯JTextField的寬度
是邊框佈局一直延伸到組件的最大寬度?
請不要使用這樣的setPreferredSize()
,因爲你不知道字體有多大。改爲像this。
編輯:我忘了BorderLayout.PAGE_START
,所以只需使用新的JPanel()
的FlowLayout
;它使用文本字段的內置首選大小。
JTextField textField = new JTextField(10);
JPanel panel = new JPanel();
panel.add(textField);
frame.add(panel, BorderLayout.PAGE_START);
...
frame.pack();
frame.setVisible(true);
尺寸確實由'LayoutManager'確定。建議下次。發佈實際代碼iso代碼的圖像。 – Robin 2013-03-07 14:49:40
你是如何將你的佈局添加到你的框架的容器?你甚至使用它?你應該直接添加你的項目而不是你的框架,像這樣:'frame.getContentPane()。add(jtf,BorderLayout.PAGE_START);'。無論如何,請發佈更多代碼。 – Rob 2013-03-07 14:51:46
@Rob我多次看到'getContentPane()'的使用,就像在你的例子中一樣。但爲什麼有些人這樣做,而不是直接將組件添加到框架?有區別嗎?有優勢嗎?有缺點嗎? – 2013-03-07 15:15:25