From 52f761095a200c53d0b4fc9920aa6159d5c853d0 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Tue, 23 Feb 2016 22:09:17 +0800 Subject: [PATCH] Fixed button animation & performance problem --- .../hellominecraft/lang/I18N_zh_TW.lang | 4 +-- .../hellominecraft/lang/I18N_zh_TW.properties | 4 +-- .../lookandfeel/painter/ButtonPainter.java | 25 +++++++++++-------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh_TW.lang b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh_TW.lang index a4c006f68..4426b8a8d 100755 --- a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh_TW.lang +++ b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh_TW.lang @@ -27,8 +27,8 @@ launch.not_finished_decompressing_natives=未能解壓遊戲本地庫,還要 launch.wrong_javadir=錯誤的Java路徑,將自動重置為默認Java路徑。 launch.exited_abnormally=遊戲非正常退出,請查看日誌資料,或聯繫他人尋求幫助。 -launch.state.logging in=登錄中 -launch.state.generating launching codes=正在生成啟動代碼 +launch.state.logging_in=登錄中 +launch.state.generating_launching_codes=正在生成啟動代碼 launch.state.downloading_libraries=正在下載必要文件 launch.state.decompressing_natives=正在釋放本地文件 diff --git a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh_TW.properties b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh_TW.properties index c160dc5ba..996601cd9 100755 --- a/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh_TW.properties +++ b/HMCLAPI/src/main/resources/org/jackhuang/hellominecraft/lang/I18N_zh_TW.properties @@ -27,8 +27,8 @@ launch.not_finished_decompressing_natives=\u672a\u80fd\u89e3\u58d3\u904a\u6232\u launch.wrong_javadir=\u932f\u8aa4\u7684Java\u8def\u5f91\uff0c\u5c07\u81ea\u52d5\u91cd\u7f6e\u70ba\u9ed8\u8a8dJava\u8def\u5f91\u3002 launch.exited_abnormally=\u904a\u6232\u975e\u6b63\u5e38\u9000\u51fa\uff0c\u8acb\u67e5\u770b\u65e5\u8a8c\u8cc7\u6599\uff0c\u6216\u806f\u7e6b\u4ed6\u4eba\u5c0b\u6c42\u5e6b\u52a9\u3002 -launch.state.logging in=\u767b\u9304\u4e2d -launch.state.generating launching codes=\u6b63\u5728\u751f\u6210\u555f\u52d5\u4ee3\u78bc +launch.state.logging_in=\u767b\u9304\u4e2d +launch.state.generating_launching_codes=\u6b63\u5728\u751f\u6210\u555f\u52d5\u4ee3\u78bc launch.state.downloading_libraries=\u6b63\u5728\u4e0b\u8f09\u5fc5\u8981\u6587\u4ef6 launch.state.decompressing_natives=\u6b63\u5728\u91cb\u653e\u672c\u5730\u6587\u4ef6 diff --git a/MetroLookAndFeel/src/main/java/org/jackhuang/hellominecraft/lookandfeel/painter/ButtonPainter.java b/MetroLookAndFeel/src/main/java/org/jackhuang/hellominecraft/lookandfeel/painter/ButtonPainter.java index 5d8381c36..103983a36 100755 --- a/MetroLookAndFeel/src/main/java/org/jackhuang/hellominecraft/lookandfeel/painter/ButtonPainter.java +++ b/MetroLookAndFeel/src/main/java/org/jackhuang/hellominecraft/lookandfeel/painter/ButtonPainter.java @@ -26,7 +26,7 @@ import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; -import javax.swing.SwingUtilities; +import javax.swing.Timer; import javax.swing.plaf.synth.SynthConstants; import javax.swing.plaf.synth.SynthContext; import javax.swing.plaf.synth.SynthPainter; @@ -76,15 +76,20 @@ public class ButtonPainter extends SynthPainter { }; private static boolean processCustomButton(final ConstomButton c, int add) { - if (System.currentTimeMillis() > c.lastDrawTime) { - c.lastDrawTime = System.currentTimeMillis(); - c.drawPercent += add; - if (c.drawPercent > 100 && add > 0) - c.drawPercent = 100; - else if (c.drawPercent < 0 && add < 0) - c.drawPercent = 0; - else - SwingUtilities.invokeLater(c::updateUI); + if (c.drawPercent == 0 || c.drawPercent == 100) { + Timer t = new Timer(1, null); + t.addActionListener(x -> { + c.drawPercent += add; + if (c.drawPercent > 100 && add > 0) { + c.drawPercent = 100; + t.stop(); + } else if (c.drawPercent < 0 && add < 0) { + c.drawPercent = 0; + t.stop(); + } else + c.updateUI(); + }); + t.start(); } return true; }