我在VBox中有多个相同的任务对象,我正在尝试用删除线格式化某些任务的标签文本。据我所知,这只能在标签的text子节点上完成。
下面的代码返回一个空指针:
label.lookup(".text");但是,我可以在CSS中使用下面这一行来实现删除线的格式化:
#label .text {
-fx-strikethrough: true;
}有没有办法使用内联代码方法实现删除效果?或者是否有使用CSS的变通方法?谢谢。
发布于 2016-03-23 00:39:47
我的实现的问题是,我一直在为所有的Task对象使用一个通用的CSS样式表。最简单的解决方案是访问标签中的text子节点,并根据是否需要样式为每个任务创建多个样式表:
if(isStrikethrough) {
label.getStylesheets.addAll(getClass().getResource("Strikethrough.css").toExternalForm());
} else {
label.getStylesheets.addAll(getClass().getResource("NoStrikethrough.css").toExternalForm());
}非常感谢James_D帮我回答了这样一个业余的问题,哈哈
https://stackoverflow.com/questions/36158516
复制相似问题