我正在尝试使用以下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)作为文本颜色,但没有作为背景颜色,即标签本身的颜色。
最佳答案
没有使用CSS(即使用JavaFx API本身)可以设置样式的任何方法。
对于某些样式(例如文本填充),可以。对于背景色,背景图像,边框等,在JavaFX 8发布之前,API方法将不可用(有关更多信息,请参阅JavaFX问题跟踪器中的Public API for Region backgrounds and borders-任何人都可以注册访问)。
在大多数情况下,当必须背靠背执行这些操作时,这些操作通常无效。
如果您只是突出显示标签,然后再次取消突出显示标签,而没有使用PauseTransition之类的东西给用户一些时间来查看突出显示的标签,那么从用户的角度来看,什么也不会发生,因为用户将看到的只是一个未突出显示的标签。
不确定您的用例,但是如果您只想突出显示标签中的文本的一部分,或者让用户用鼠标突出显示文本,则可以使用TextField并将editable设置为false。
可能的解决方法
如果Java 8 preview不适用于您,并且由于JavaFX CSS处理中的错误而遇到错误,请尝试在PanPane中放置窗格和标签。将窗格的背景色设置为label.setStyle("-fx-background-color:rgba(85, 255, 68,0.7););
将窗格的首选宽度和高度绑定到标签的宽度和高度,并在窗格上适当地切换setVisible。
关于css - 在JavaFx标签中突出显示文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14964378/