当我尝试显示大小或对齐方式时,对JComponents进行细微更改时,尝试显示时在JDialog中延迟显示JComponents?
- >当我尝试用鼠标显示组件时,显示一个空的对话框。 ..
- >所以我禁用setResize()属性...
- >仍然没有效果...
帮我在这....
谢谢你
当我尝试显示大小或对齐方式时,对JComponents进行细微更改时,尝试显示时在JDialog中延迟显示JComponents?
- >当我尝试用鼠标显示组件时,显示一个空的对话框。 ..
- >所以我禁用setResize()属性...
- >仍然没有效果...
帮我在这....
谢谢你
我猜你的代码看起来是这样的:
dialog.pack();
dialog.setVisible(true);
dialog.add(someComponent);
的代码应该是:
dialog.add(someComponent);
dialog.pack();
dialog.setVisible(true);
这是你需要的组件,然后才使其可见添加到对话。
是的!这是错误....我以前在JComponents的初始化之前放置了pack()...谢谢 – 2011-03-08 09:39:04
有几件事情,可能会导致这样的:你改变你的组件后尝试在内容窗格中调用revalidate()
和repaint()
:
什么是错的与您使用的布局管理器。并确保您对Swing Event Dispatch线程中的所有组件进行更改。您可以拨打SwingUtitlites.invokeLater()来完成。
如果你在一个带有compiz的Linux机器上,java有时会无法重新绘制帧。这是一个只有部分修复的旧bug。尝试使用metacity,看看你是否可以重现这个问题。
我在Linux上Ubuntu – 2011-03-08 05:55:00
你不应该使用doLayout()。如果将组件添加到可见的GUI中,则可以在面板上使用revalidate()。 – camickr 2011-03-08 06:13:47
@camickr:固定,谢谢。 – 2011-03-08 07:35:29
你在修改gui线程上的组件吗? (你应该是) – MeBigFatGuy 2011-03-08 05:30:02
@userNNNNN“帮我解决这个问题....”请修复那个粘性“。”键,记住要问一个问题。像这样的问题通常是由于未能正确使用布局而导致的。如果查看布局并不能排序问题,我建议您发布一个SSCCE(http://pscode.org/sscce.html),因为我的水晶球在清洁工。 – 2011-03-08 05:33:16
@Andrew Thompson:我可以分享我的libastral源代码:) – 2011-03-08 05:43:48