我知道如何管理scatter chart
中的start method
,但我想使用包含散点图的fxml
文件,然后我想使用控制器来控制它。我为此目的使用Scenebuilder
,但我不知道如何将类别轴添加到scatterChar
,我找到了数字轴,但我没有看到要添加的任何类别轴。是场景构建器中带有散点图的水平类别轴,但我不知道,我如何为其添加一些值。这可能在场景构建器中,或者我必须在控制器中执行吗?
答案 0 :(得分:1)
基于代码的解决方案
scatterChart
)。在控制器中注入散点图参考:
@FXML ScatterChart scatterChart;
在控制器的initialize()
方法中添加类别。
CategoryAxis xAxis = (CategoryAxis) scatterChart.getXAxis();
xAxis.getCategories().setAll(
"UFO sightings",
"Paranormal Events",
"Inexplicable Tweets"
);
如果您需要将数据传递到控制器以绘制图表内部,请从以下位置选择方法:
备用部分基于FXML的解决方案
虽然您无法通过SceneBuilder UI将类别添加到图表中,但您可以手动编辑FXML文件,在SceneBuilder中加载已编辑的文件(这将解析文件并显示类别并保留您的手工编辑时你在SceneBuilder中保存文件。
不是在步骤4中定义的initialize()
中的代码中添加类别,而是手动编辑FXML文件并添加类别。这是一个示例:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.String?>
<?import javafx.collections.FXCollections?>
<?import javafx.scene.chart.CategoryAxis?>
<?import javafx.scene.chart.NumberAxis?>
<?import javafx.scene.chart.ScatterChart?>
<ScatterChart fx:id="scatterChart" title="Concerning Events" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1">
<xAxis>
<CategoryAxis side="BOTTOM">
<categories>
<FXCollections fx:factory="observableArrayList">
<String fx:value="UFO Sightings" />
<String fx:value="Paranormal Activity" />
<String fx:value="Inexplicable Tweets" />
</FXCollections>
</categories>
</CategoryAxis>
</xAxis>
<yAxis>
<NumberAxis side="LEFT" />
</yAxis>
</ScatterChart>
您无法使用FXML使用实际数据重新填充图表(但无论如何都不太可能想要这样做)。