1

コンソールの 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();
    }
}

助けてくれてありがとう。

4

1 に答える 1

1

ロガーの 1 つを使用してフォーマットを行うことをお勧めします。ある種のテキスト書式設定ライブラリを使用せずに、コンソールでタブの間隔と垂直方向の列の配置を制御することは非常に困難です。Logger は、オプションで出力を表示に使用できるテキスト ファイルに保存できます。また、出力をフォーマットするのにもかなり良い仕事をするかもしれません.

最も人気のあるロガーは次のとおりです。

http://www.slf4j.org/

自分でコンソールに出力する必要がある場合は、コンソール出力ライブラリを使用する必要があります。これを見てください、有望に見えます:

http://www.codeproject.com/Articles/24896/JLib-A-Windows-Console-Library

于 2012-10-25T20:20:14.803 に答える