时运行
现在我有了这个(只是增加了标签的alpha值,中间有小停顿):
ae.getErrorLabel().setVisible(true);
ae.getErrorLabel().setForeground(new Color(255, 0, 0, 0));
ae.getErrorLabel().setBackground(new Color(0, 0, 0, 0));
int alpha = 0;
while (alpha < 255) {
// wait-Methode
long time0, time1;
time0 = System.currentTimeMillis();
do {
time1 = System.currentTimeMillis();
} while ((time1 - time0) < 0.1 * 1000);
// =====================================
alpha += 25;
if (alpha > 255)
alpha = 255;
ae.getErrorLabel().setForeground(
new Color(255, 0, 0, alpha));
ae.getErrorLabel().setBackground(
new Color(128, 128, 128, alpha));
这使得JLabel "淡入"。
但是它看起来有点bug,看起来不太好看。
有没有更好的方法(不太复杂的)?
Btw:这是swing,一个简单的JLabel在一个简单的JPanel上,我在一个单独的线程中使用这段代码,当你按下一个按钮
动画不是一件容易实现的事情。因此,最好使用经过测试的库。其中最好的是三叉戟。相关链接:
https://kenai.com/projects/trident/pages/Home https://github.com/kirillcool/trident