Java:将java.awt.Color转换为javafx.scene.paint.Color

8 java javafx awt

我怎样才能相互融合?我想通过rgb字符串的方式,但这种情况下alpha层被忽略.那么问题 - 如何使用alpha将一个转换为另一个?

Jam*_*s_D 11

从awt Color对象获取每个组件并使用javafx.scene.paint.Color.rgb(...)静态方法.请注意,awt Color有一个getAlpha()方法可以返回int范围内的alpha 0-255,而javafx.scene.paint.Color.rgb(...)期望alpha值为double范围内的a 0.0-1.0:

java.awt.Color awtColor = ... ;
int r = awtColor.getRed();
int g = awtColor.getGreen();
int b = awtColor.getBlue();
int a = awtColor.getAlpha();
double opacity = a / 255.0 ;
javafx.scene.paint.Color fxColor = javafx.scene.paint.Color.rgb(r, g, b, opacity);
Run Code Online (Sandbox Code Playgroud)