2013-04-11 42 views
2

我正在編寫一個在GUI中使用幾個組件的程序。但是,我不需要同時顯示所有這些內容。另外,取決於用戶的輸入,可能有一次組件不再被使用,它可能或可能不再需要。Swing中setVisible()方法的含義

到目前爲止,我只是簡單地調用setVisible(false)對於我確實想在屏幕上顯示的每個組件。如果他們再次需要,我只是讓他們可見。

我的問題是這樣的。將組件的可見性設置爲false會對程序的性能產生重大影響(一般而言)? paintComponent方法是否繪製了一個不可見的組件,然後只是不顯示它,還是一起忽略它?

另外,只是從容器中刪除組件而不是更好?

+1

據我所知,一個組件不可見時不被繪製。佈局管理器仍然需要遍歷所有可用的組件,但通常會忽略這些組件,但仍然需要將它們包含在計算循環中。使組件可見將導致組件層次結構失效,要求將它們重新佈局並重新繪製(同樣使其不可見)。 – MadProgrammer 2013-04-11 03:48:03

+0

paint方法繪製添加到此容器的所有組件。如果可以移除,則最好從容器中移除組件。 – chintan 2013-04-11 03:49:26

回答

0

如果它不可見,則不繪製。比方說,我做了一個按鈕,然後做了它,所以當我按下它時打印出「你好」。如果按鈕setVisible()爲false,我將無法點擊它,而不是它們的。

+0

謝謝你的幫助。 – moldavan 2013-04-12 00:11:22