当前位置: 首页 > 图灵资讯 > 技术篇> javafx中style没有刷新,css没有效果

javafx中style没有刷新,css没有效果

来源:图灵教育
时间:2023-05-12 10:15:39

  记录代码中遇到的问题,如图所示:

javafx中style没有刷新,css没有效果_javafx中css刷新无效

  这是第一次打开。现在还不错。看第二张图:

javafx中style没有刷新,css没有效果_css样式_02

  这是第二次打开tab标题栏的框架直接消失了,javafx在第二次打开时没有直接渲染,只有框架,虽然可以使用,但非常丑陋。

  该代码的前端是由javafx编写的客户服务端之一。在tabpane的布局下,有许多tab。因为tab是由数据生成的,而不是fxml文件编写的,tab的数量不是固定的,只能由代码生成。当生成菜单时,第二次单击并生成新菜单。如果前面的菜单不清空,它们就会堆在一起。因此,每次生成菜单时,只能清空Tabpane。但是一旦Tab被清空,Tab的css风格就消失了,无论如何设置style都没有效果。

  解决方法:@FXMLprivate StackPane root;@FXMLprivate VBox centPane;root.getStyleClass().add("-fx-");//centPane.getStyleClass().add("-fx-");

  目前已经尝试过StackPane和VBox布局,可以支持css风格的刷新,其他都没有尝试过(Tabpane放在这两种布局中)。

  代码解释:因为Tabpane放在这个大布局中,当我添加CSS风格的大布局时,无论我添加什么样的CSS,所有标签和布局的CSS风格都会被刷新。添加字符串可以什么都不是。只需在清空Tabpan后调用此方法(当然,这只是我的猜测)