Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX-如何对条形图中的值进行排序_Java_Javafx_Javafx 2_Bar Chart - Fatal编程技术网

JavaFX-如何对条形图中的值进行排序

JavaFX-如何对条形图中的值进行排序,java,javafx,javafx-2,bar-chart,Java,Javafx,Javafx 2,Bar Chart,我有以下JavaFX条形图(底部为数字轴,左侧为类别轴): 如何反转(即按值排序)类别的顺序,使J显示在顶部,A显示在底部?您可以这样做: XYChart.Series series1 = new XYChart.Series(); series1.getData().add(new XYChart.Data(1, "A")); series1.getData().add(new XYChart.Data(1, "B")); series1.getData().add(new XYChart.

我有以下JavaFX条形图(底部为数字轴,左侧为类别轴):

如何反转(即按值排序)类别的顺序,使J显示在顶部,A显示在底部?

您可以这样做:

XYChart.Series series1 = new XYChart.Series();
series1.getData().add(new XYChart.Data(1, "A"));
series1.getData().add(new XYChart.Data(1, "B"));
series1.getData().add(new XYChart.Data(1, "C"));
series1.getData().add(new XYChart.Data(1, "D"));
series1.getData().add(new XYChart.Data(1, "E"));
series1.getData().add(new XYChart.Data(2, "F"));
series1.getData().add(new XYChart.Data(2, "G"));
series1.getData().add(new XYChart.Data(4, "H"));
series1.getData().add(new XYChart.Data(4, "J"));

Collections.sort(series1.getData(), new Comparator<XYChart.Data>() {

    @Override
    public int compare(Data o1, Data o2) {
        Number xValue1 = (Number) o1.getXValue();
        Number xValue2 = (Number) o2.getXValue();
        return new BigDecimal(xValue1.toString()).compareTo(new BigDecimal(xValue2.toString()));
    }
});
XYChart.Series系列1=新的XYChart.Series();
series1.getData().add(新的XYChart.Data(1,“A”);
series1.getData().add(新的XYChart.Data(1,“B”);
series1.getData().add(新的XYChart.Data(1,“C”);
series1.getData().add(新的XYChart.Data(1,“D”);
series1.getData().add(新的XYChart.Data(1,“E”);
series1.getData().add(新的XYChart.Data(2,“F”);
series1.getData().add(新的XYChart.Data(2,“G”);
series1.getData().add(新的XYChart.Data(4,“H”);
series1.getData().add(新的XYChart.Data(4,“J”);
Collections.sort(series1.getData(),new Comparator()){
@凌驾
公共整数比较(数据o1,数据o2){
数字xValue1=(数字)o1.getXValue();
数字xValue2=(数字)o2.getXValue();
返回新的BigDecimal(xValue1.toString()).compareTo(新的BigDecimal(xValue2.toString());
}
});

图表数据可以按大小的降序排序,以便始终对类别轴进行排序

bc.getData().sort((Series<String, Number> o1, Series<String, Number> o2) -> o1.getData().size() <= o2.getData().size()?1:0);

bc.getData().sort((系列o1,系列o2)->o1.getData().size(),对我来说,这实际上只是按照给定的顺序插入数据。如果我这样做
series1.getData().add(new-XYChart.Data(4,“H”);series1.getData().add(new-XYChart.Data(1,“B”);series1.getData().add(new-XYChart.Data(2,“F”);Collections.sort(…);//与建议的代码一样
条形图将按给定的顺序显示条形图,而不会对任何东西进行排序。奇怪。请编写代码中的排序,因为这是可行的。new Comparator(){@Override public int compare(Data o1,Data o2){Number xValue1=(Number)o1.getXValue();Number xValue2=(Number)o2.getXValue();返回新的BigDecimal(xValue1.toString())。比较(新的BigDecimal(xValue2.toString());}}请不要在多个问题上发布相同的答案。问题很可能是重复的,应该标记为重复的。如果不是,请针对每个问题定制您的答案,以说明它们的不同之处。