2012-12-03 83 views
0

我正在寫一個Java Applet,並且在我的一個CardLayout面板上,BorderLayout.CENTER內的GridLayout正在水平和垂直拉伸TextFields(這是可以的,因爲我可以在部件之間設置垂直間距的網格)。我可以停止TextFields的範圍嗎?我可以將文本居中嗎?Java Applet,GridLayout伸展TextFields Horizo​​ntaly

+0

*「'BorderLayout.CENTER' ..我可以停止TextFields的寬度(?)」*將它們放在BorderLayout.LINE_START或BorderLayout.LINE_END中。它們將被拉伸到需要的寬度(由最寬的列指定),但具有面板的整個高度(少於'PAGE_START'&'PAGE_END')。 –

+0

@AndrewThompson PAGE_END停止了垂直拉伸,但隨後小程序中的文本字段顯得更低。我可能會解決這個問題。謝謝。 – Tony

回答

3

考慮使用JPanel嵌套另一個FlowLayout內的包含JTextField的JPanel。通過這種方式,使用JPanel的FlowLayout是根據設置int col屬性設置JTextField的大小而得到延伸的。請注意,如果使用JPanel的嵌套FlowLayout小於其子JPanel的preferredSize,這將失敗。

+0

這個問題是我需要保留我的TextField作爲一列。 謝謝你。 – Tony

+0

@Harth:或許你不應該使用GridLayout,因爲它非常不靈活。也許你應該使用GridBagLayout或MigLayout。或者很可能是一個JTable。 –

+0

:-(我不想使用GridBagLayout,因爲它顯然更復雜,但我想我必須。 – Tony

相關問題