使用Scene Builder创建的JavaFX饼图不显示数据
题
im使用oracle的一些javafx示例无法使用场景构建器创建的oracle中的一些javafx示例,因此代码与我想要使用的代码不同。
即时尝试使用sceebuilder创建一个包含饼图的布局。我在代码开始时将图表的FXID设置为“mypiechart”,在我的代码开始时使用相应的世代生成键。
我还添加了下面的代码,即在初始化上执行的代码,我认为将归因于图表: -
ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList(
new PieChart.Data("Grapefruit", 13),
new PieChart.Data("Oranges", 25),
new PieChart.Data("Plums", 10),
new PieChart.Data("Pears", 22),
new PieChart.Data("Apples", 30));
PieChart myPieChart = new PieChart(pieChartData);
.
所有值都被放入可观察列表中,然后使用obsevableRist值实例化饼图。
不幸的是,我的饼图没有显示....我错过了什么人?
为任何帮助欢呼。
解决方案
不要创建一个新的piechart。
fxml加载过程将为您创建图表实例,并将其插入FXML定义的布局窗格的子项。@fxml注释将注入对照图表的引用。
您在控制器的初始化程序中需要执行的只是使用您的数据填充现有图表。您可以通过调用 setdata 在mypiechart上。
其他提示
您可以通过仅为图表设置为fxml中的ID来这样做
public class GraphScreenController implements Initializable {
@FXML
PieChart chart;
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
ObservableList<PieChart.Data> pieChartData =
FXCollections.observableArrayList(
new PieChart.Data("Executed", 60),
new PieChart.Data("Passed", 25),
new PieChart.Data("Fails", 15));
chart.setData(pieChartData);
}
}
. 不隶属于 StackOverflow