我正在尝试在JavaFX中创建一个PieChart
,我想用来自HashMap
的数据填充它。
这是我的代码:
public Graph(HashMap<String, Double> chartData) {
ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList();
for (Map.Entry<String, Double> entry: chartData.entrySet()) {
String s = entry.getKey();
new PieChart.Data(entry.getKey(), entry.getValue());
//System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
chart = new PieChart(pieChartData);
chart.setTitle("Imported Fruits");
}
我面临的问题是,当我尝试使用 entry.getKey()
作为字符串时,出现以下错误:
Data 中的数据(java.lang.String, double(不能应用于 (com.org.apache.xpath.internal.operations.String, Double(.
字符串标记为红色,当我用"Some text"
替换entry.getKey()
时,它确实有效。原因是什么?
您似乎在当前文件中导入了错误的"字符串"类(com.org.apache.xpath.internal.operations.String
(,并且数据类需要正确的类(java.lang.String
(。确保您的导入正确(即删除第一种类型的导入(。
另请参阅此问题,提问者遇到类似问题的地方
以下代码片段:
new PieChart.Data(entry.getKey(), entry.getValue());
entry.getKey()
不是字符串
String s = entry.getKey();
new PieChart.Data(s, entry.getValue());
试试吧
https://docs.oracle.com/javase/8/javafx/api/javafx/scene/chart/PieChart.Data.html