Проблема в том, что при заполнении моего столбца (любого из них) списком идентичные значения отображаются друг над другом и отображаются как единое целое.Мне потребовалось некоторое время, чтобы понять это.Теперь я создаю хакерский обходной путь, просто ища дубликаты и добавляя к ним "".Но если вы отображаете список с более чем 100 записями, и все они состоят из однозначных чисел, вы обязаны иметь до 9 пробелов за каждым числом, например, и это делает форматирование всего этого действительно сложным.Поэтому мой вопрос: есть ли какой-нибудь способ проинструктировать диаграмму для их отдельного рисования или, если ее нет, есть лучший обходной путь, чем мой?
public void updateChart(boolean originalChart, ArrayList<SortingEntry> entries){
Platform.runLater(() -> {
ArrayList<SortingEntry> list = Functions.checkForDoubles(entries);
if(originalChart){
inputSeries = new XYChart.Series();
for(SortingEntry entry:list){
XYChart.Data chartData = new XYChart.Data(entry.getValue(), entry.getValAsLong());
inputSeries.getData().add(chartData);
}
input.getData().clear();
input.getData().add(inputSeries);
} else {
resultSeries = new XYChart.Series();
for(SortingEntry entry:list){
XYChart.Data chartData = new XYChart.Data(entry.getValue(), entry.getValAsLong());
resultSeries.getData().add(chartData);
}
result.getData().clear();
result.getData().add(resultSeries);
}
System.out.println();
});
}
checkForDoubles в функциях:
public static ArrayList<SortingEntry> checkForDoubles(ArrayList<SortingEntry> list){
ArrayList<String> doubles = new ArrayList<>();
for(int i = 0; i < list.size(); i++){
for(int j = 0; j < list.size(); j++){
SortingEntry entry = list.get(i);
if(entry.getValue().equals(list.get(j).getValue()) && !doubles.contains(entry.getValue()) && i != j){
doubles.add(entry.getValue());
list.remove(entry);
entry.setValue(entry.getValue()+" ");
list.add(entry);
checkForDoubles(list);
}
}
}
return list;
}