我正在尝试使用以下 CSS 将 JavaFx 标签文本的文本背景设置为绿色
label.setStyle("-fx-background-color:rgba(85, 255, 68,0.7););
并使用以下取消突出显示
label.setStyle("-fx-background-color:rgba(0,0,255,0);");
然而,当必须背靠背完成时,这些在大多数情况下不起作用。
有没有什么方法可以在不使用 CSS 的情况下设置样式,即使用 JavaFx API 本身。我发现 label.textFill(Paint p) 用于文本颜色,但没有用于背景颜色,即标签本身的颜色。
最佳答案
Is there any way to set the style without using CSS i.e. using JavaFx API itself.
对于某些样式(例如文本填充)是的。对于背景颜色、背景图像、边框等,在 JavaFX 8 发布之前,API 方法将不可用(有关更多信息,请参阅 JavaFX 问题跟踪器中的 Public API for Region backgrounds and borders - 任何人都可以注册访问)。
these does not work most of the times when it has to be done back to back.
如果您只是突出显示一个标签然后再次取消突出显示而不使用像 PauseTransition 这样的东西给用户一些时间来查看突出显示的标签,然后,从用户的 Angular 来看,不会发生任何事情,因为用户只会看到未突出显示的标签。
不确定您的用例,但如果您只想突出显示标签中的部分文本或让用户使用鼠标突出显示文本,那么您可以使用 TextField可编辑设置为 false。
可能的解决方法
如果Java 8 preview对您不起作用,并且由于 JavaFX CSS 处理中的错误而遇到错误,然后尝试放置一个 Pane ,然后在 StackPane 中放置一个标签。将 Pane 的背景颜色设置为 label.setStyle("-fx-background-color:rgba(85, 255, 68,0.7);
将 Pane 的首选宽度和高度绑定(bind)到 Label 的宽度和高度,并根据需要在 Pane 上切换 setVisible。
关于css - 突出显示 JavaFx 标签中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14964378/