从javafx折线图中消除空白

t9aqgxwy  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(178)

我试图用javafx创建一个简单的gui来监视一些系统属性。我有一个折线图,我想显示一些系统信息,如当前的cpu负载等,我想使折线图小,像在视图中的其他组件。然而,在线条图下面总是有我无法摆脱的空白:vbox中的javafx节点
图表会实时更新。对于前几个刻度,图表在收缩前看起来正常:正常折线图
我想确保折线图始终保持相同的大小,并消除下面留下的空白,这样折线图就不会占用过多的空间。
我尝试过摆弄linechart对象的max、min和pref height设置,但没有效果,还尝试过父vbox的padding和vgrow设置。我还尝试用内联css从折线图中删除填充,但这也没有帮助。我试图改变自动范围设置,以防它有什么关系,但它没有帮助。我不确定问题出在哪里。任何帮助都将不胜感激。
创建折线图的代码:

public static LineChart<String, Number> lineChart(int sysInfoCall, int refreshRate) {

    if (Objects.isNull(refreshRate)) {
        refreshRate = 500;
    }
    final CategoryAxis xAxis = new CategoryAxis(); 
    final NumberAxis yAxis = new NumberAxis(0.0, 1.0, 1);
    xAxis.setAnimated(false); 
    yAxis.setAnimated(false);
    final LineChart<String, Number> lineChart = new LineChart<>(xAxis, yAxis);
    lineChart.setMaxHeight(50);

    lineChart.setAnimated(false);
    yAxis.setAutoRanging(false);
    yAxis.setForceZeroInRange(false);
    XYChart.Series<String, Number> series = new XYChart.Series<>();
    // We want the line graph and nothing else
    lineChart.setStyle("-fx-padding:0px");
    lineChart.setLegendVisible(false);
    lineChart.setCreateSymbols(false);
    lineChart.setHorizontalGridLinesVisible(false);
    lineChart.setVerticalGridLinesVisible(false);
    lineChart.setHorizontalZeroLineVisible(true);

    Pane parent = (Pane) xAxis.getParent();
    parent.getChildren().removeAll(xAxis);
    parent = (Pane) yAxis.getParent();
    parent.getChildren().removeAll(yAxis);

    lineChart.getData().add(series);
    RTExecutors.executorService(series, sysInfoCall, refreshRate);
    return lineChart;

}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题