当前位置: 首页 > 知识库问答 >
问题:

JavaFX有没有颜色渐变编辑器控件?

阳建弼
2023-03-14

对于一个可以将噪声函数(-1到1个值)映射到颜色的编辑器,我需要一些控件来定义颜色渐变,比如值-0是黑-0.3是黄-0.8是红-1是白,所以整个渐变从黑到白,这是可编辑的,JavaFX中是否内置了类似的东西,或者我必须编写自己的控件?

基本上是这样的smth:

提前致谢

共有1个答案

终翔
2023-03-14

实际上,Scene Builder有一个强大的渐变编辑器,允许插入多个停止:

该控件名为PaintPicker,它是可以从这里下载的场景生成器工具包的一部分。

有了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%)
 类似资料:
  • 主要内容:JavaFX渐变颜色,线性梯度(LinearGradient),径向渐变,半透明渐变,反射循环渐变JavaFX渐变颜色 可以使用径向渐变使形状看起来三维(立体)。 梯度绘制可以在两种或更多种颜色之间内插,这给出形状的深度。JavaFX提供两种类型的渐变:径向渐变()和线性渐变()。 要在JavaFX中创建渐变颜色,需要设置五个属性值。如下 - 设置开始起点的第一个停止颜色。 将终点设置为终止停止颜色。 设置属性以指定是使用标准屏幕坐标还是单位平方坐标。 将循环方法设置为使用三个枚举:,

  • 渐变色编辑器 渐变色编辑器可以设置粒子中某个属性随时间变化的颜色,渐变色编辑器的界面如下图 渐变色编辑器可以进行如下操作: Mode可以选择两种模式,Blend模式会按照当前时刻相邻的两个关键帧进行插值得到当前帧的颜色,Fixed模式会直接使用当前时刻的前一个关键帧颜色。 点击色带上方的空白处可以插入一个 alpha 关键帧,点击色带下方的空白处可以插入一个 rgb 关键帧。 拖动关键帧左右移动可

  • 我在我的javafx应用程序中使用锚板。我想画一个矩形并用渐变色填充它,如下所示:矩形的左侧是蓝色的,右侧是红色的,我希望它看起来从左到右,蓝色减少,红色增加。 我知道如何放置一个矩形(如何在javafx中使用Rectangle类),但我不知道如何以这种方式填充它。有什么想法吗?

  • 我试图找出如何复制JavaFX梯度是如何在涉及透明度时插值/混合的。如果我尝试使用内置的方法在颜色之间插值的简单方法,我会得到完全不同的结果。正如您在这里看到的: 这两个渐变都是简单的[红色@0%,rgba(0,0,255,0)@50%,绿色@100%],但是蓝色在JavaFX渐变(顶部)中根本不可见,在朴素的方法(底部)中非常可见。颜色如何在渐变中插值的实际公式是什么,在哪里可以找到它(即什么类

  • 问题内容: 是否有生成器,或生成这种文本的简便方法,而无需定义 每个 字母 所以像这样: 但是不是用 彩虹 色而是用其他颜色(例如,白色到灰色/浅蓝色渐变等)生成的,我为此找不到简单的解决方案。有什么办法吗? 问题答案: 我不完全了解 Stop的 工作原理。但是我有一个 渐变文本 示例。也许这会帮到您! _您也可以根据需要为渐变添加更多颜色,或者从颜色生成器中选择其他颜色

  • 问题内容: 默认情况下,我的条形图始终使用渐变颜色绘制。我只想要一种 没有任何样式效果 的简单颜色。 有人可以帮忙吗? 码: 谢谢 问题答案: 问题出在您正在使用中。JFreeChart版本1.0.13的默认设置是使用,它将为条形添加金属感。如果您想要“旧”外观,解决方案是使用。 那应该做。 另外,如果要使用JFreeChart’s ,则可以在初始化渲染器之前通过调用static方法来强制其使用。