我想使用以下代码在用户面前打印几行:
data.stream().forEach((dataObj) ->
{
tilePane.getChildren().add(new Text(dataObj.getOne() + " " + dataObj.getSecond() + " " + dataObj.getTh() + " "
+ dataObj.getLs() + " " + dataObj.getLast()));
});
但是你可以看到最终结果不是非常格式化的输出:
有没有办法格式化列?
答案 0 :(得分:2)
有几种选择:
最简单的方法是使用等宽字体,其中包含空格的每个符号的宽度相同,最受欢迎的是Courier New:
text.setFont(Font.font ("Courier New", 14));
当您以表格格式提供数据时,您可以选择使用TableView
代替Text
最后,如果你真的喜欢这种字体并且不想使用TableView
,你可以在4 Text
个实例中拆分你的行,并将每个Text
调整为在与其他行相应的坐标相同的坐标上。 E.g。
Text t1 = new Text(dataObj.getOne());
t1.setMinWidth(100); // adjust according to real data
Text t2 = new Text(dataObj.getSecond());
t2.setMinWidth(100); // adjust according to real data
Text t3 = new Text(dataObj.getTs());
t3.setMinWidth(300); // adjust according to real data
Text t4 = new Text(dataObj.getLs());
t4.setMinWidth(300); // adjust according to real data
Text t5 = new Text(dataObj.getLast());
tilePane.getChildren().addAll(t1, t2, t3, t4, t5);