當我嘗試顯示大小或對齊方式時,對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