2013-02-19 25 views
3

對於我的節目,我有一個JPane,隨着比賽的進行其添加標籤的面板,但是隻有這樣我可以使面板顯示是利用add(label)然後重新驗證,反之亦然去除標籤。的JPanel壓倒一切的重新驗證()

我的問題是,一旦它達到了我在屏幕上有超過40個標籤的地方,重新驗證必須處理太多東西,那麼我怎樣才能覆蓋revalidate()以太工程,以便它只重新驗證添加了特定組件,而不是屏幕上的每個組件。我知道在revalidate()方法中會有一個循環,它將貫穿所有組件的循環,但是我不能在我的生活中找到它。我希望能夠撥打revalidate(component-here)validate (component-here)並讓它只更新該特定組件。

我知道有寫這個程序的其他方式,但我只關心如何覆蓋revalidate()所以沒有「你可以重做你的整個代碼這樣它應該只需要你想6小時>。<」感興趣。

http://www.fileserve.com/file/jFdQ6nv/FINAL_PROJECT.zip一個鏈接到我的Eclipse項目中,如果任何人誰願意幫助想看看有什麼我其實說話abouyt

+0

validate()在容器類中。 – Elton 2013-02-19 19:40:38

回答

1

我只是嘗試這樣做example。添加1000個文本區域只需要一秒鐘,更新即時。標籤走得更快。你可能想看看別的東西放慢速度。您也可以查看CellRendererPane。它覆蓋invalidate()什麼都不做。

public void invalidate() {} 
+0

在我的這是一個小行星遊戲,所以我有大量的標籤四處移動,拍攝和垃圾 – Elton 2013-02-21 15:44:11

+0

對不起,我只看到小行星繪製形狀的遊戲。 – 2013-02-22 13:47:34