簡體   English   中英

JLabel數組的顯示速度很慢

[英]Display of JLabel array is to slow

我正在使用Swing開發一款roguelike游戲。 我正在使用JLabel數組來顯示切片。 當用戶輸入方向時,我使用以下方法重繪整個選項卡(我在這里使用簡化變量名稱):

for (int i=0 ; i<array.length ; i++){
    for(int j=0 ; j<array[i].length ; j++){
        this.remove(array[i][j]);
        array[i][j] = new JLabel(new ImageIcon(TILEARRAY[i][j]));
        this.add(array[i][j]);
        this.validate();
    }
}

但處理起來非常沉重,大約0.5秒重繪整個面板,當我按下方向時,它無法快速繪制到實時顯示(它實際上是循環,沿着等待時間,當整個位移已經完成時,繪制)。 我想知道是否有一種更容易,更快捷的方法來實現這一點,具有“平滑”的感覺(讓我們說像Stone Soup Dungeon Crawl(瓷磚版)),使用Swing。

關於Java的高效2D庫的每個建議也是受歡迎的。 我知道有Slick2D,但這種游戲還有其他好的其他庫嗎?

謝謝

(對不起,如果我的英語不好,我不是母語為英語的人)

調用this.validate(); 兩次循環后只需一次,以避免布局首選項重新計算

UPDATE。 將ImageIcons保留在Map中並重用它們而不是重新創建。 鍵可以是i +“_”+ j String

暫無
暫無

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

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