如何处理StackedAreaChart渲染错误

时间:2015-02-19 13:50:31

标签: javafx javafx-2 javafx-8

我经常在StackedAreaChart中遇到一个非常棘手的错误。而不是

enter image description here

我得到了

enter image description here

当数据点每显示像素密度高(尽管不是非常),非线性和/或连续数据序列时,这个bug似乎经常出现问题。 x组件未对齐。例如,上面的两个图像是同一个窗口,只需调整大小。

以下是在Windows 7 32位和64位平台上重现该错误的代码:

public class ChartTest extends Application {

@Override
public void start(Stage primaryStage) {

    NumberAxis xAxis = new NumberAxis(0, 100, 10);
    NumberAxis yAxis = new NumberAxis(0, 100, 10);
    StackedAreaChart<Number,Number> chart;
    chart = new StackedAreaChart(xAxis,yAxis);
    chart.setLegendVisible(false);
    chart.setCreateSymbols(false);
    chart.getData().add(genSeries(0));
    chart.getData().add(genSeries(1));

    StackPane root = new StackPane();
    root.getChildren().add(chart);

    Scene scene = new Scene(root, 300, 250);

    primaryStage.setScene(scene);
    primaryStage.show();
}

private Series<Number,Number> genSeries(int a){
    Series<Number,Number> s = new Series<>();
    ObservableList<XYChart.Data<Number, Number>> d = s.getData();
    for(int i=0; i<50; i++){
        double x = Math.sqrt(2*i+a);
        d.add(new XYChart.Data<>(x, i));
    }
    return s;
}

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    launch(args);
}

}

有没有人知道这个bug,如何解决它,或者它出现在什么条件下?

它真的很麻烦:

enter image description here

0 个答案:

没有答案