[英]How do you update this custom paint in Java?
我有一個基於GUI的實時游戲,並使用JPanel和JFrame。 我目前有一個重寫的paintComponent,它根據代碼中的某些條件進行繪制。 例如:
protected void paintComponent(Graphics gfx)
{
super.paintComponent(gfx);
gfx.setFont(new Font("default", Font.BOLD, 18));
if (one)
{
//do something
}
else
{
// do something else
}
}
這取決於條件一次。 我已經實現了一個鼠標偵聽器,我想將其用於語句,這樣,如果有人單擊某個部分,它將顯示其他內容。 我想返回並再次運行paintComponent,以便在舊的組件上繪制。 paintComponent()
是否已經循環? 如果沒有,如何循環運行該方法?
您可以通過調用repaint()
來重繪。 您可以通過創建一個計時器來重繪它來循環執行此操作,或者僅在需要更新它時調用它(如果您的代碼足夠簡單,則可能會更好)
編輯:關於何時使用計時器:
不需要計時器。 我曾經在游戲中使用過它,因為我是自定義繪制整個窗口的內容,並且要繪制數十種隨時變化的內容,每次調用render()
都不會使我的CPU感到高興。 但是,對於簡單的事情,最好僅在發生更改時才調用repaint()
,因為如果沒有任何更改,那么您將浪費大量時間進行重新繪制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.