簡體   English   中英

您如何在Java中更新此自定義繪畫?

[英]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.

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