我试图在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)。
字符串标记为红色,当我用entry.getKey()
替换"Some text"
时,它确实有效。原因是什么?
答案 0 :(得分:6)
你似乎导入了错误的&#34; String&#34;当前文件中的类(com.org.apache.xpath.internal.operations.String
)和Data类需要正确的(java.lang.String
)。确保导入正确(即删除第一种类型的导入)。
另见this question,提问者遇到类似问题
答案 1 :(得分:0)
此代码段:
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