簡體   English   中英

javafx折線圖排序數據

[英]javafx line chart sorted data

我正在嘗試對兩個軸上的數據字符串進行排序,但是它不起作用。 代碼如下:

    //defining the axes
    final CategoryAxis xAxis = new CategoryAxis();
    final Axis<String> yAxis = new CategoryAxis();
    xAxis.setLabel("Day");
    yAxis.setLabel("Duration");
    //creating the chart
    LineChart<String, String> dataDiagram = new LineChart<String,String>(xAxis,yAxis);
    dataDiagram.setAnimated(false);

    dataDiagram.setTitle("Data");
    Iterator<String> i = this.choosenActivities.iterator();
    while (i.hasNext()){
        String choosenActivity= i.next();
        Activity activity = this.activities.get(choosenActivity);
        //defining a series
        ObservableList<Data<String, String>> data = FXCollections.observableArrayList() ;
        Iterator<Entry<Day,Long>> is = activity.durationPerDay.entrySet().iterator();
        while (is.hasNext()){
            Entry<Day,Long> e= is.next();
            //populating the series with data
            SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
            Date date = new Date();
            date.setTime(e.getValue());
            data.add(new Data<String,String>(e.getKey().toString(), dateFormat.format(date)));

        }
        SortedList<Data<String, String>> sortedData = new SortedList<>(data, (data1, data2) -> 
        data1.getXValue().compareTo(data2.getXValue()));
        SortedList<Data<String, String>> sortedData2 = new SortedList<>(sortedData, (data1, data2) -> 
        data1.getYValue().compareTo(data2.getYValue()));
        dataDiagram .getData().add(new Series<>(activite.nom,sortedData2));
    }

結果是xaxis與條目{2016/7/13; 2016/7/14; 2016/7/18; 依此類推}},但是yaxis給出{00:00:01; 00:00:23; 00:00:07}

我正在尋找另一種格式化時間的格式(數據是System.currentTimeMillis()給出的Long),而不是字符串,或者以我的情況對字符串進行排序。 我見過tickLabelFormatter,但它只允許為數字提供前綴和后綴,而不是將其格式化為時間。

您不能在將時間數據轉換為String 之前對其進行排序? 在這種情況下,您可以使用

Collections.sort(list);

用於排序,因為多頭的自然順序。 如果確實有必要在排序之前將數據轉換為String ,則可以嘗試編寫自定義的Comparator來完成這項工作。

如何在Java中使用比較器進行排序

https://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM