0

I'm trying to create a PieChart in JavaFX, and I want to fill it with data from a HashMap.

Here's my code:

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");
}

The issue I am facing is that when I try to use entry.getKey() as the string, I get the following error:

Data (java.lang.String, double) in Data cannot be applied to (com.org.apache.xpath.internal.operations.String, Double).

The String is marked red and when I replace entry.getKey() with "Some text" it does work. What is the cause?

Tomalak
  • 332,285
  • 67
  • 532
  • 628
Serena
  • 185
  • 1
  • 14

2 Answers2

11

You seem to have imported the wrong "String" class ( com.org.apache.xpath.internal.operations.String) in your current file and the Data class expects the correct one (java.lang.String). Make sure your imports are correct (i.e. remove the import of the first type).

Also see this question, where the asker has run into a similar problem

Community
  • 1
  • 1
wonderb0lt
  • 2,035
  • 1
  • 23
  • 37
0

this code snippet:

new PieChart.Data(entry.getKey(), entry.getValue());

entry.getKey() is not string

String s = entry.getKey();
new PieChart.Data(s, entry.getValue());

Try it

https://docs.oracle.com/javase/8/javafx/api/javafx/scene/chart/PieChart.Data.html

Gourav Joshi
  • 2,419
  • 2
  • 27
  • 45
chu
  • 1
  • 1