Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java文本区域中格式化输出_Java_Mysql_User Interface_Formatting_Output - Fatal编程技术网

在Java文本区域中格式化输出

在Java文本区域中格式化输出,java,mysql,user-interface,formatting,output,Java,Mysql,User Interface,Formatting,Output,我正在控制台中将MySQL查询的输出打印到gui应用程序的文本区域。现在,当一个名称超过其列的宽度时,文本区域中的列就会被弄乱。如何修复下面的代码段,使文本区域的输出看起来一致 else if (e.getSource() == executeButton) { //Create a statement try{ String commandString = enterSQLText.getText(); Statement statement =

我正在控制台中将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();
    }
}
else if(e.getSource()==executeButton){
//创建一个语句
试一试{
String commandString=enterSQLText.getText();
语句Statement=conn.createStatement();
//执行语句
ResultSet ResultSet=statement.executeQuery(commandString);
//处理查询结果
ResultSetMetaData元数据=resultSet.getMetaData();
int numberOfColumns=metaData.getColumnCount();

对于(int i=1;i最好使用其中一个记录器为您进行格式化。如果不使用某种文本格式化库,很难控制控制台中的制表符间距和垂直列对齐方式。记录器可以选择将您的输出存储在文本文件中,您可以使用该文件进行查看。它还可以很好地进行格式化g输出

以下是最流行的记录器:

如果必须自己将输出输出到控制台,则需要使用控制台输出库。请看一看,这看起来很有希望:


最好使用其中一个记录器为您进行格式化。如果不使用某种文本格式库,很难在控制台中控制制表符间距和垂直列对齐方式。记录器可以选择将您的输出存储在文本文件中,您可以使用该文件进行查看。它还可以很好地格式化输出

以下是最流行的记录器:

如果必须自己将输出输出到控制台,则需要使用控制台输出库。请看一看,这看起来很有希望:


这些都是非常复杂的解决方案。我很惊讶没有一个简单的解决方案:-/它不需要太夸张,只需要在列中显示输出而不重叠,谢谢你的建议。不幸的是,控制台界面被标准社区忽略了。我能想到的唯一标准是VT200/220和MS-DOS并不关心这个问题,因此实际上,我们没有控制台驱动程序。这些是一些相当复杂的解决方案。我很惊讶没有一个简单的解决方案:-/它不需要太夸张,它只需要在列中显示输出,而不需要重叠,谢谢你的建议。不幸的是,控制台interface被标准团体忽略了。我能想到的唯一标准是VT200/220,MS-DOS对此不感兴趣,因此实际上,我们没有控制台驱动程序。您可以使用表而不是文本区域。JTables擅长显示来自数据库表的数据。您可以使用表而不是文本区域。JTables擅长于显示数据来自数据库表的数据。