我正在制作一个 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());
}
}
});