【问题标题】:Formatting in a JTextfield在 JTextfield 中格式化
【发布时间】:2021-06-30 04:33:24
【问题描述】:

当我这样做时:-

GUI.this.libraryResult.setText(String.format("%-30s%-30s%-20s%-20s%n","\tTITLE","AUTHOR","YEAR","ISBN"));
for (Book book : booklist) {
    GUI.this.libraryResult.setText(libraryResult.getText() + String.format ("%-30s%-30s%-20s%-20s%n",
            "\t" + book.getTitle(), book.getAuthor(), book.getYear(), book.getISBN()));

我明白了:

我做错了什么阻止他们正确地证明左?

【问题讨论】:

  • “我明白了:” 不在JTextField 中。一个文本 field 只会显示一行数据。那可能是JTextArea。识别类时请小心。或更好。发布minimal reproducible example,读者可以自己验证类类型。

标签: java swing format string-formatting jtextfield


【解决方案1】:

问题在于文本区域使用的是可变宽度字体(其中 I 占用的宽度小于 W)。使用Font.MONOSPACED 来解决眼前的问题。

不过,更一般地说,这是表格数据。 JTable 就是为了这个目的设计的!更重要的是,它提供了许多方便的功能,比如对表格进行排序或过滤,或者对不同的列使用不同的格式(例如,使标题/作者斜体)和列中的值(例如,给出年份颜色较深)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    相关资源
    最近更新 更多