【问题标题】:Java: Split strings and put them into text area'sJava:拆分字符串并将它们放入文本区域的
【发布时间】:2013-03-03 00:34:16
【问题描述】:

我有一种方法可以将名称及其分数保存到文本文件中。现在我做了一个“高分”按钮,调用一个从高分文本文件中读取的方法。现在这个输出很丑,所以我想把名字放在一个文本区域,把分数放在另一个文本区域,这样它们就被均匀地分开了。

我该怎么做?

提前致谢

我目前的输出:

【问题讨论】:

  • 为什么是JTextArea?我认为将JLabels 与适当的布局管理器结合使用可以得到你想要的(例如FlowLayout 和使用BoxLayout 的嵌套组件)。另外,请附上sscce
  • 很难说出您实际在问什么。请尝试将您的问题归结为本质,然后再提问。

标签: java swing


【解决方案1】:

假设文件的格式是这样的:

姓名;得分\n
OTHERNAME;OTHERSCORE\n
...

你可以这样做:

BufferedReader br = new BufferedReader(...); // Initialize a buffered reader reading from that text file.
String line;
while ((line = br.readLine() != null) {
    String name = line.split(";")[0];
    String score = line.split(";")[1];
    namesTextArea.append(name + "\n");
    scoresTextArea.append(score + "\n");
}

希望对你有帮助!

【讨论】:

    【解决方案2】:

    听起来您真正想要的是一种处理姓名和分数对齐的方法。您可以使用 Java 对 format strings 的支持来自动填充 name 字段并为其指定最大宽度,从而将所有分数对齐在同一列中:

    String.format("%-20.20s %s", "Name", "Score")
    

    这将填充每个名称以使其宽度为 20 个字符,如果名称超过 20 个字符,也会截断该名称,使其不会溢出到乐谱区域。您可以将上面的20 更改为您认为合理的任何宽度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-17
      • 2018-12-14
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多