我试图用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;
}
暂无答案!
目前还没有任何答案,快来回答吧!