Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java代码中使用javafx更改散点图的点颜色?_Java_Javafx_Lookup - Fatal编程技术网

如何在java代码中使用javafx更改散点图的点颜色?

如何在java代码中使用javafx更改散点图的点颜色?,java,javafx,lookup,Java,Javafx,Lookup,就像我能做的那样 Set<Node> nodes = lineChart.lookupAll(".series" + index); for (Node n : nodes) { n.setStyle("...css style code..."); } Set nodes=lineChart.lookupAll(“.series”+索引); 用于(节点n:节点){ n、 setStyle(“…css样式代码…”); } 对于折线图,如何对散点图执行相同操作?下面是节点/

就像我能做的那样

Set<Node> nodes = lineChart.lookupAll(".series" + index);
for (Node n : nodes) {
    n.setStyle("...css style code...");
}
Set nodes=lineChart.lookupAll(“.series”+索引);
用于(节点n:节点){
n、 setStyle(“…css样式代码…”);
}
对于折线图,如何对散点图执行相同操作?

下面是节点/颜色更改的示例。代码来自

import java.util.Set;
导入javafx.application.application;
导入javafx.scene.Node;
导入javafx.scene.scene;
导入javafx.scene.chart.NumberAxis;
导入javafx.scene.chart.ScatterChart;
导入javafx.scene.chart.XYChart;
导入javafx.stage.stage;
公共类ScatterChartSample扩展了应用程序
{
@凌驾
公众假期开始(阶段)
{
阶段。集合标题(“散点图样本”);
最终数轴xAxis=新数轴(0,10,1);
最终数字轴yAxis=新数字轴(-100500100);
最终散射图sc=新散射图(X轴、Y轴);
xAxis.setLabel(“年龄(年)”;
yAxis.setLabel(“返回日期”);
sc.setTitle(“投资概述”);
XYChart.Series系列1=新的XYChart.Series();
系列1.集合名(“股权”);
series1.getData().add(新的XYChart.Data(4.2193.2));
series1.getData().add(新的XYChart.Data(2.8,33.6));
series1.getData().add(新的XYChart.Data(6.2,24.8));
series1.getData().add(新的XYChart.Data(1,14));
series1.getData().add(新的XYChart.Data(1.2,26.4));
series1.getData().add(新的XYChart.Data(4.4114.4));
series1.getData().add(新的XYChart.Data(8.5323));
series1.getData().add(新的XYChart.Data(6.9289.8));
series1.getData().add(新的XYChart.Data(9.9287.1));
series1.getData().add(新的XYChart.Data(0.9,-9));
series1.getData().add(新的XYChart.Data(3.2150.8));
series1.getData().add(新的XYChart.Data(4.8,20.8));
series1.getData().add(新的XYChart.Data(7.3,-42.3));
series1.getData().add(新的XYChart.Data(1.8,81.4));
series1.getData().add(新的XYChart.Data(7.3110.3));
series1.getData().add(新的XYChart.Data(2.7,41.2));
XYChart.Series系列2=新的XYChart.Series();
系列2.集合名(“共同基金”);
series2.getData().add(新的XYChart.Data(5.2229.2));
series2.getData().add(新的XYChart.Data(2.4,37.6));
series2.getData().add(新的XYChart.Data(3.2,49.8));
series2.getData().add(新的XYChart.Data(1.8134));
series2.getData().add(新的XYChart.Data(3.2236.2));
series2.getData().add(新的XYChart.Data(7.4114.1));
series2.getData().add(新的XYChart.Data(3.5323));
series2.getData().add(新的XYChart.Data(9.3,29.9));
series2.getData().add(新的XYChart.Data(8.1287.4));
sc.getData().addAll(系列1、系列2);
场景=新场景(sc,500400);
舞台场景;
stage.show();
设置节点=sc.lookupAll(“.series”+0);
用于(节点n:节点){
n、 设置样式(“-fx背景色:#860061,白色;\n”
+-fx背景插图:0,2;\n
+“-fx背景半径:5px;\n”
+“-fx填充:5px;”;
}
}
公共静态void main(字符串[]args)
{
发射(args);
}
}

您发布的代码没有问题。我刚做了一个测试,效果很好。去听听你的想法,好的。对于折线图,它是有效的。但是对于ScatterChart,不要这样做。另外,使用
CSS
这样做可能更容易。重现问题后,我发现在XYChart.Series中没有添加XYChart.Data时,该样式不起作用。非常感谢。
import java.util.Set;
import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.ScatterChart;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;

public class ScatterChartSample extends Application
{

    @Override
    public void start(Stage stage)
    {
        stage.setTitle("Scatter Chart Sample");
        final NumberAxis xAxis = new NumberAxis(0, 10, 1);
        final NumberAxis yAxis = new NumberAxis(-100, 500, 100);
        final ScatterChart<Number, Number> sc = new ScatterChart<Number, Number>(xAxis, yAxis);
        xAxis.setLabel("Age (years)");
        yAxis.setLabel("Returns to date");
        sc.setTitle("Investment Overview");

        XYChart.Series series1 = new XYChart.Series();
        series1.setName("Equities");
        series1.getData().add(new XYChart.Data(4.2, 193.2));
        series1.getData().add(new XYChart.Data(2.8, 33.6));
        series1.getData().add(new XYChart.Data(6.2, 24.8));
        series1.getData().add(new XYChart.Data(1, 14));
        series1.getData().add(new XYChart.Data(1.2, 26.4));
        series1.getData().add(new XYChart.Data(4.4, 114.4));
        series1.getData().add(new XYChart.Data(8.5, 323));
        series1.getData().add(new XYChart.Data(6.9, 289.8));
        series1.getData().add(new XYChart.Data(9.9, 287.1));
        series1.getData().add(new XYChart.Data(0.9, -9));
        series1.getData().add(new XYChart.Data(3.2, 150.8));
        series1.getData().add(new XYChart.Data(4.8, 20.8));
        series1.getData().add(new XYChart.Data(7.3, -42.3));
        series1.getData().add(new XYChart.Data(1.8, 81.4));
        series1.getData().add(new XYChart.Data(7.3, 110.3));
        series1.getData().add(new XYChart.Data(2.7, 41.2));

        XYChart.Series series2 = new XYChart.Series();
        series2.setName("Mutual funds");
        series2.getData().add(new XYChart.Data(5.2, 229.2));
        series2.getData().add(new XYChart.Data(2.4, 37.6));
        series2.getData().add(new XYChart.Data(3.2, 49.8));
        series2.getData().add(new XYChart.Data(1.8, 134));
        series2.getData().add(new XYChart.Data(3.2, 236.2));
        series2.getData().add(new XYChart.Data(7.4, 114.1));
        series2.getData().add(new XYChart.Data(3.5, 323));
        series2.getData().add(new XYChart.Data(9.3, 29.9));
        series2.getData().add(new XYChart.Data(8.1, 287.4));

        sc.getData().addAll(series1, series2);
        Scene scene = new Scene(sc, 500, 400);
        stage.setScene(scene);
        stage.show();

        Set<Node> nodes = sc.lookupAll(".series" + 0);
        for (Node n : nodes) {
            n.setStyle("-fx-background-color: #860061, white;\n"
                    + "    -fx-background-insets: 0, 2;\n"
                    + "    -fx-background-radius: 5px;\n"
                    + "    -fx-padding: 5px;");
        }
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}