2011-06-19 60 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) –