为用户界面元素选择正确的颜色始终是一个很大的挑战,但是当您开发可重用的框架控件时,开发人员就无法控制使用它们的应用程序的外观和感觉,这甚至更具挑战性。 尽管您可能总是将元素添加到默认的灰色背景之上,但是嵌入控件的开发人员可能更倾向于哥特式风格,并使用黑色背景。 突然之间,您选择的漂亮颜色与应用程序的其余部分发生冲突。
为了解决此问题,我在使用FlexGanttFX和FlexCalendarFX时发现的最佳方法是使用半透明颜色。 当您执行操作时,UI元素的颜色将始终是其自身颜色和背景颜色的混合。 如果应用程序使用白色背景,则颜色将变亮;如果应用程序使用黑色背景,则颜色将变暗。 元素和背景之间的对比度永远不会很强,这将使外观平滑。
以下屏幕截图取自FlexCalendarFX(正在开发)。
现在,相同的UI带有更暗的背景。 您可能一开始可能看不到它,但是这两个屏幕截图的绿色和蓝色实际上有所不同。 这些是非常细微的差异,但是它们对您的应用程序的总体印象有很大的差异。
在JavaFX中,您可以在CSS中定义Alpha通道值小于1的颜色以实现透明度:
.my-style {-fx-background-color: rgba(255, 255, 255, .7); // transparent white
}
使用不透明度还具有很好的副作用,即使它们相互重叠,您仍然可以区分不同的元素。
翻译自: https://www.javacodegeeks.com/2014/07/javafx-tip-6-use-transparent-colors.html