如何淡入/淡出Java图形?
假设我有一个Java图形对象,我想在上面画一条线或一个矩形。当我发出绘制命令时,它立即出现在屏幕上。我只是想知道,我如何才能像在Javascript中实现的那样,以淡入/淡出效果实现这一进步 有什么想法吗 非常感谢您的帮助和建议提前 看看。看看类的透明度,看看基于Swing的类的计时如何淡入/淡出Java图形?,java,graphics,animation,effects,Java,Graphics,Animation,Effects,假设我有一个Java图形对象,我想在上面画一条线或一个矩形。当我发出绘制命令时,它立即出现在屏幕上。我只是想知道,我如何才能像在Javascript中实现的那样,以淡入/淡出效果实现这一进步 有什么想法吗 非常感谢您的帮助和建议提前 看看。看看类的透明度,看看基于Swing的类的计时 游戏有演示。在显示如何将它们连接在一起的合成标题下。您可以尝试反复绘制图像,但使用不同的不透明度(alpha)值。从0(完全透明)开始,逐渐增加到1(不透明),以产生淡入效果。以下是一些可能有帮助的测试代码: fl
游戏有演示。在显示如何将它们连接在一起的合成标题下。您可以尝试反复绘制图像,但使用不同的不透明度(alpha)值。从0(完全透明)开始,逐渐增加到1(不透明),以产生淡入效果。以下是一些可能有帮助的测试代码:
float alpha = 0.0f;
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
//set the opacity
g2d.setComposite(AlphaComposite.getInstance(
AlphaComposite.SRC_OVER, alpha));
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
//do the drawing here
g2d.drawLine(10, 10, 110, 110);
g2d.drawRect(10, 10, 100, 100);
//increase the opacity and repaint
alpha += 0.05f;
if (alpha >= 1.0f) {
alpha = 1.0f;
} else {
repaint();
}
//sleep for a bit
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
如果我遗漏了什么,请原谅,但是。。。您是否正在事件调度线程上睡觉??