如何将数据打印到具有不同字符串长度的列中?

问题描述 投票:0回答:0

我正在制作一个 GUI,当单击打印按钮时,它会从数据库(firstName、lastName、finalGrade)中提取值,并将这些值打印到 GUI 中 JTextArea 中的相应列中。当然,人们的名字由不同的字符串长度组成,那么我如何才能将 firstName、lastName 和 finalGrade 对齐到各自的列中,其中每列中每个字符串的开头与前一行,在同一列?

printButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    Connection con = connect();
                    Statement stmt = con.createStatement();
                    ResultSet rs = stmt.executeQuery("SELECT firstName, lastName, finalGrade FROM 302_grades");

                    StringBuilder sb = new StringBuilder();
                    sb.append(String.format("%-20s %-30s %10s\n", "First Name", "Last Name", "Grade"));
                    sb.append("-------------------------------------------------------------------------\n");

                    while (rs.next()) {
                        sb.append(String.format("%-20s %-30s %10d\n", rs.getString("firstName"), rs.getString("lastName"), rs.getInt("finalGrade")));
                    }

                    display.setText(sb.toString());

                } catch (Exception ex) {
                    System.out.println("Exception: " + ex.getMessage());
                }
            }
        });

以上是我的 printButton 代码。这是我的输出。 print output

java user-interface text multiple-columns
© www.soinside.com 2019 - 2024. All rights reserved.