我试图把一个未知的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();
}
}
我试着使用权allignemnt通过40年代%,但它wouldnt allign正确也。我也试过使用%100s和%-100s,它也没有工作。 有什么帮助吗?
您可以使用等宽字体吗?像摩纳哥或新快递一样。 –
@ OleV.V。将字体更改为Courier New解决了我的问题!谢谢你,洛特! –