簡體   English   中英

如何取消JPanel的重繪?

[英]How to cancel a repaint of a JPanel?

我知道JPanel默認是自動雙緩沖的。 但是,我的面板中有一個特別耗時的繪畫操作,但是當底層數據發生變化時,面板只需要重新繪制,這種情況很少見。 因此,我想重用JPanel緩沖區,而不是在每次調用repaint()后都清除它。

我在我的JPanel子類上手動實現了一個“臟”標志,但我不知道如何在啟動后取消繪制操作。 我無法避免通話擺在首位,以重畫,因為我的面板是一個JScrollPane,正在重新粉刷每它的調整時間( 經常出現),這將導致我的自定義面板進行重新繪制內。

如果沒有手動緩沖面板,有沒有辦法做到這一點? 如果沒有,那么與JPanel一起實現手動緩沖區的推薦方法是什么?

我有一個特別耗時的繪畫操作..只需要在基礎數據發生變化時重新繪制,這很少見。

將數據繪制到BufferedImage ,將其顯示在JLabel 如果更改,請調用label.repaint() EG在這個答案中看到了。

獎金在標簽中顯示圖像是一種獲得具有首選大小的GUI的方法,不需要擴展任何內容。 要獲得顯示它的框架或對話框的完美大小,請調用pack()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM