【问题标题】:Why is element always blue surrounded when showing stage为什么显示舞台时元素总是被蓝色包围
【发布时间】:2018-04-30 06:19:30
【问题描述】:

大家好,如果你可以这样称呼的话,我有“错误”。 启动程序时,一个元素总是蓝色的。

@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();     
}

=>

【问题讨论】:

标签: java javafx javafx-8 stage


【解决方案1】:

显示为蓝色的原因是它是活动元素。 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; }

【讨论】:

  • 有关更改焦点颜色的更多详细信息,您可以查看@jewelsea 链接到的内容。如果你错过了,这里又来了:stackoverflow.com/questions/6092500/…
  • 场景构建器中只有“-fx-focus-traversable”?一样吗
  • 您可能只想将焦点设置为 TextField 或重新排序节点,以便 TextField 以焦点开头。 1+ @DragonHeart000 写一个答案。
猜你喜欢
  • 1970-01-01
  • 2019-11-04
  • 1970-01-01
  • 2015-12-31
  • 1970-01-01
  • 2023-01-13
  • 1970-01-01
  • 1970-01-01
  • 2019-09-09
相关资源
最近更新 更多