如何在JList中格式化文本?

2 java swing jlist

我有一些项目JList,我无法正确格式化.

我创建了这个方法是为了这样做:

private String formatString(String string){
     string = string.trim();

    int SEPERATOR = 20 - string.length();

    for(int i = 0; i<SEPERATOR; i++){

        string = string + " ";
    }

    return string;
}
Run Code Online (Sandbox Code Playgroud)

当我JList使用系统输出打印输出窗口中的项目时,它格式正常,但在我的GUI中它不会:

例

我不确定这是否会帮助你更好地帮助我,但这就是我将数据加载到列表中的方法:

    DefaultListModel m = new DefaultListModel();

    while (rs.next()){

        String Expense = rs.getString("Expense");
        String Cost = "£"+rs.getString("Cost");
        String PurchaseDate = rs.getString("Purchase_Date");
        String Description = rs.getString("Description");

        Expense = formatString(Expense);
        Cost = formatString(Cost);
        PurchaseDate = formatString(PurchaseDate);
        Description = formatString(Description);


        String Row = Expense+Cost+PurchaseDate+Description;

        m.addElement(Row);
        System.out.println(Row);
    }
Run Code Online (Sandbox Code Playgroud)

cam*_*ckr 5

正如已经提出的那样,最好的解决方案是使用a JTable.阅读有关如何使用表的Swing教程中的部分获取更多信息和工作示例.

当我使用系统输出打印将我的jlist中的项目输出到输出窗口时,它格式正常,但在我的GUI中它不会:

要回答您的问题,您需要使用等宽字体.

list.setFont( new Font("monospaced", Font.PLAIN, 10) );
Run Code Online (Sandbox Code Playgroud)

此外,使用标准Java变量名称.变量名(费用,成本...)不应以大写字母开头.