有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

文本区域中的swing格式。JAVA

追加textArea时如何格式化文本

  try{
        //establish connection to database
        connection= DriverManager.getConnection(DATABASE_URL, "Hotel", "1234");     
        //create statement for querying database
        statement = connection.createStatement();

     //            statement.executeUpdate("INSERT INTO TBLSTUDENT VALUES("+id+",'"+name+"','"+course+"',"+age+")");
        //query database
        resultSet = statement.executeQuery("SELECT * FROM Customer");

        //process query results
        ResultSetMetaData metaData = resultSet.getMetaData();
        int numberOfColumns = metaData.getColumnCount();
        textArea.append("Hotel Database: \n");
        for(int i=1; i<=numberOfColumns; i++){

            textArea.append(metaData.getColumnName(i));//"%-8s\t",

        }
        System.out.println();

        while(resultSet.next()){
            for(int i=1; i<=numberOfColumns;i++){
                textArea.append(resultSet.getObject(i).toString());
            }
            System.out.println();
        }
    }catch(SQLException sqlException){
        sqlException.printStackTrace();

    }

现在的输出是它只附加到一行中

应该是这样

第1列-第2列-第3列

数据1数据2-数据3

我尝试使用格式化%-8s\t,但在.append()上不起作用


共 (1) 个答案

  1. # 1 楼答案

    一般来说,JTextArea不是最佳选择,您应该使用JTable

    有关详细信息,请参见How to Use Tables

    但是,尝试使用类似于textArea.append(String.format("%-8s\t", metaData.getColumnName(i)));的东西

    您还需要在两行之间append一个新行字符(\n