我想重现 JavaFX modena 主题默认具有的相同焦点效果,例如,当您单击按钮时。这是为了将此效果应用于获得焦点的形状。
我不使用 FXML 和 CSS,但如果更简单的话我可以尝试一下。
最佳答案
在摩德纳,多个背景填充被组合起来以达到这种效果。由于显而易见的原因,这不适用于形状。 (形状
没有背景属性,并且没有可用的填充,允许您在任意形状的每个可能点处更改与边缘正交的颜色。)
您可以使用 DropShadow
效果来实现与控件的焦点外观类似的外观:
@Override
public void start(Stage primaryStage) {
Circle circle = new Circle(100, null);
circle.setStrokeWidth(5);
circle.setStroke(Color.BLACK);
Effect effect = new DropShadow(BlurType.GAUSSIAN, Color.DODGERBLUE, 5, 0.75, 0, 0);
Scene scene = new Scene(new StackPane(circle), 250, 250);
scene.setOnMouseClicked(evt -> circle.setEffect(circle.getEffect() == null ? effect : null));
primaryStage.setScene(scene);
primaryStage.show();
}
结果(左侧没有效果,右侧应用了效果)
DropShadow
效果也可以通过 CSS 应用,请参阅 https://docs.oracle.com/javase/10/docs/api/javafx/scene/doc-files/cssref.html#typeeffect
关于java - 重现javaFX焦点效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52311383/