2012-09-01 35 views
1

我在JDialog中有一個可調整大小的JScrollPane。 JScrollPane具有JPanel(稱爲容器)所有這些JScrollPane,JPanel和Jdialog都可調整大小。在運行時,另一個JPanel(稱爲child)被添加到JDialog的JScrollPane中的前一個jPanel。我想要獲得'child'JPanel大小的大小。在將「子」JPanel添加到「容器」JPanel之前和之後,「子」和「容器」JPanel的大小顯示爲0(child.getSize() , container.getSize())。如何獲得不可見的JPanel的大小

查看JComponent之前,獲取大小可能是不可能的。但即使「孩子」的JPanel添加和查看我的情況下,大小仍爲0。

我怎樣才能添加到「容器」後得到「孩子」 JPanel的真實大小的JPanel

+5

這類問題通常歸結爲解決無法使用佈局的問題。最好的解決方法是學習如何使用佈局。 –

+3

爲什麼? (15個字符) – kleopatra

+1

由**默認**組件具有0x0大小。我們需要跳過一些箍環來做其他事情。請參閱[本主題](http://stackoverflow.com/q/7369814/418556)瞭解如何爲JTable做一些提示,但[LabelRenderTest.java](http://stackoverflow.com/a/5853992/418556)更簡單地爲「JLabel」做了它。 –

回答

7

您可以在setVisible()之前使用validate()以獲得幾何結構,如討論here

0

將子Jpanel添加到容器JPanel後,我得到了子面板的大小,然後它不是0大小,並導致實際大小。感謝所有對我的問題發表評論和回答的人。另外,正如trashgod所說,我叫validate()。每件事情都很好。