对于可以将Noise Function(-1到1值)映射到Colors的编辑器,我需要一些Control来定义Color Gradient,所以像 值 - 0是黑色的 - 0.3是黄色 - 0.8是红色的 - 1是白色的 所以整个渐变从黑到白,这是可编辑的, 有什么类似内置于JavaFX或我必须编写自己的控件吗?
基本上像这样:
提前致谢
答案 0 :(得分:3)
实际上,Scene Builder有一个强大的渐变编辑器,允许插入多个停靠点:
该控件名为PaintPicker
,它是可以从here下载的Scene Builder Kit的一部分。
拥有jar后,您可以使用该组件。
这是一个简短的片段,展示了如何轻松地将其添加到您的场景中:
@Override
public void start(Stage primaryStage) {
VBox root = new VBox();
root.setAlignment(Pos.CENTER);
root.setPadding(new Insets(10));
PaintPickerController controller;
final FXMLLoader loader = new FXMLLoader();
loader.setLocation(PaintPicker.class.getResource("PaintPicker.fxml"));
try {
final VBox picker = loader.load();
controller = loader.getController();
controller.paintProperty().addListener((obs, ov, nv) -> System.out.println("Paint: " + nv));
root.getChildren().add(picker);
} catch (IOException ex) {
throw new IllegalStateException(ex);
}
Scene scene = new Scene(root, 320, 600);
primaryStage.setTitle("SceneBuilder PaintPicker");
primaryStage.setScene(scene);
primaryStage.show();
}
使用监听器,您将立即获得渐变:
Paint: linear-gradient(from 60.096% 38.461% to 47.115% 45.192%,
reflect, 0xda7777ff 0.0%, 0x226621ff 28.667%, 0xf2ff1cff 49.333%,
0xff1c5fff 73.0%, 0xffffffff 100.0%)
答案 1 :(得分:0)