我正在我的控制台中打印MySQL查询的输出,并进入我的gui应用程序的文本区域。现在,只要名称长于其列的宽度,列就会在文本区域中混乱。如何修复下面的代码段以使文本区域的输出看起来一致?
else if (e.getSource() == executeButton) {
//Create a statement
try{
String commandString = enterSQLText.getText();
Statement statement = conn.createStatement();
//Execute a statement
ResultSet resultSet = statement.executeQuery(commandString);
//Process query results
ResultSetMetaData metaData = resultSet.getMetaData();
int numberOfColumns = metaData.getColumnCount();
for(int i = 1; i<= numberOfColumns; i++){
executionResultText.append(metaData.getColumnName(i) + "\t");
System.out.printf("%20s\t", metaData.getColumnName(i));
}
executionResultText.append("\n");
System.out.println();
while (resultSet.next()){
for (int i = 1; i <= numberOfColumns; i++){
executionResultText.append(resultSet.getObject(i).toString() + "\t");
System.out.printf("%20s\t", resultSet.getObject(i));
}
executionResultText.append("\n");
System.out.println();
}
System.out.println("Execute Button Works!");
}
catch (Exception h){
h.printStackTrace();
}
}
我很感激帮助。
答案 0 :(得分:1)
最好使用其中一个记录器为您进行格式化。在不使用某种文本格式库的情况下,很难控制控制台中的制表符间距和垂直列对齐。 Logger可以选择将输出存储在可用于查看的文本文件中。它也可以很好地格式化输出。
这是最受欢迎的记录器:
如果您必须自己输出到控制台,则需要使用控制台输出库。看看这个,看起来很有希望:
http://www.codeproject.com/Articles/24896/JLib-A-Windows-Console-Library