2011-06-19 72 views

回答

0

將組件偵聽器設置爲JFrame。它提供了一些方法來在組件被調整大小,移動,隱藏或顯示時運行。 Here是如何去做的。

+2

You ** really * *不應該需要使用偵聽器來調整父級調整大小時調整組件的大小。如果你發現自己使用這個,你應該咬緊牙關,學習如何正確使用LayoutManager。實際上,您鏈接到的教程中的示例代碼**具有佔用所有可用空間的文本框**,並且您會注意到它不使用組件偵聽器來執行此操作。 –

+0

是的,沒錯。在大多數情況下,LayoutManager是有用的,但在學校項目中,當窗口大小調整時,我不得不更改組件的大小,而更改佈局本身。雖然我不是Swing大師,但我的項目並沒有大規模學習Swing,我的解決方案是使用那種聽衆。 (現在,@ user805563尚未回覆,我們不知道他/她是否需要更改佈局,或者不知道如何有效地使用佈局。 –

7

您需要爲父組件指定JTextField填充可用空間的LayoutManager。

但是,JFrame的默認佈局管理器將執行此操作。如果您只需撥打frame.add(new JTextField())並嘗試調整窗口大小,文本字段將會填充可用空間。您必須將JTextField放入具有不同佈局管理器的中間面板。你需要給我們更多的背景來幫助你解決你的具體問題。

+0

+1,另一種選擇是註冊一個'ComponentListener'並覆蓋['componentResized(...)'](http://download.oracle.com/javase/6/docs/api/java/ awt/event/ComponentListener.html#componentResized%28java.awt.event.ComponentEvent%29)方法來執行一些自定義操作。 – mre

+1

@ user805563:您想要閱讀的教程從這裏開始:[放置容器中的組件](http://download.oracle.com/javase/tutorial/uiswing/layout/index.html) –