为什么在显示阶段

时间:2017-11-16 16:09:53

标签: java javafx javafx-8 stage

嘿,伙计们我有" bug"如果你可以这么称呼它。 启动程序时,一个元素始终为蓝色。

@Override
public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("resource/Start.fxml"));

    Scene scene = new Scene(root);      
    stage.setScene(scene);
    stage.setTitle("Alc Calc V1.1");
    stage.show();     
}

=>

enter image description here

1 个答案:

答案 0 :(得分:3)

显示为蓝色的原因是它是活动元素。 JavaFX允许您使用CSS来设置程序的样式,如果您不自己使用它,它将使用默认值。在默认设置中,fx-focus-color属性设置为添加您所指的蓝色。

您可以通过更改代码中的属性本身来消除对所有控件的影响。

control.setStyle("-fx-focus-color: transparent;");

如果您计划更改的不仅仅是一两件事,我建议您制作自己的CSS文件并使用它。你可以附上它:

scene.getStylesheets().add("your_custom_css_file.css");

然后要在CSS文件中设置此属性,您需要添加此属性:

.root { -fx-focus-color: transparent; }