gpt4 book ai didi

java - 字符串对齐

转载 作者:行者123 更新时间:2023-11-30 22:08:44 25 4
gpt4 key购买 nike

我试图将未知 SQL 查询的结果集以表格形式放入 javafx TextArea 中。我设法完美地做到了,但我在对齐方面遇到了小问题。 Here is the result that i get

这是我的代码:

        private void querySubmitButtonClicked() {
try {
String q = queryTF.getText();
PreparedStatement ps = getConnection().prepareStatement(q);
if ((q.startsWith("INSERT")) || (q.startsWith("UPDATE")) || (q.startsWith("DELETE")))
ps.executeUpdate();
else
queryResult = ps.executeQuery();

ResultSetMetaData rsmd = queryResult.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
StringBuilder sb = new StringBuilder();
String columnsNames = "";

for (int i = 1; i <= numberOfColumns; i++)
columnsNames += String.format("%-40s", rsmd.getColumnName(i));

sb.append(columnsNames + "\n");
while (queryResult.next()) {
String columnsValues = "";
for (int i = 1; i <= numberOfColumns; i++) {
columnsValues += String.format("%-40s", queryResult.getString(i));
}
sb.append(columnsValues + "\n");
}
TextArea resultArea = new TextArea(sb.toString());
resultArea.setEditable(false);
resultArea.setFocusTraversable(false);
resultArea.setStyle("-fx-font-size: 10");
expertPane.setCenter(resultArea);

} catch (SQLException e) {
expertPane.setCenter(msgLabel);
} catch (Exception e) {
e.printStackTrace();
}
}

我尝试通过使用 %40s 来使用正确的对齐方式,但它也无法正确对齐。我也试过使用 %100s 和 %-100s 它也没有用。有什么帮助吗?

最佳答案

正如我在评论中所建议的那样,使用等宽(固定宽度)字体,例如 Monaco 或 Courier New。这应该可以做到。

我不知道 FX,但我认为另一种选择是使用 TableView 而不是 TextArea

关于java - 字符串对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40819222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com