【问题标题】:Output strings of an array into a JTextArea in java将数组的字符串输出到java中的JTextArea
【发布时间】:2012-02-21 06:17:57
【问题描述】:

您好,我制作了一个程序,它读取包含单词的文本文件并将其添加到数组中。我现在需要在我创建的 JTextArea 中显示这些词,但我不知道该怎么做。文本文件每行包含一个单词,这就是我希望 JTextArea 也显示它们的方式。

这是到目前为止的代码。我拥有的 JTextArea 称为 textArea (它是在另一种方法中创建的)

    public static void file() {

    List<String> wordList = new ArrayList<String>();

    BufferedReader br = null;
    try {

        br = new BufferedReader(new FileReader("data/WordFile.txt"));
        String word;

        while ((word = br.readLine()) != null) {
            wordList.add(word);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            br.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    String[] words = new String[wordList.size()];
    wordList.toArray(words);
}

【问题讨论】:

  • 您已经描述了一个问题以及您如何做不到,但到目前为止还没有提出任何问题(更不用说一个具体的、可回答的问题)。你有问题吗?
  • "..file 每行包含一个单词,这就是我希望 .. 也显示它们的方式。" 听起来像一个项目列表。在这种情况下,请查看 JList 而不是 JTextArea
  • 哇 - 我需要帮助才能在 JTextArea 中显示数组的内容。我还需要使用 JTextArea
  • @jj007:虽然我用JTextArea 回答但@Andrew 是对的JList 将是一个更好的选择。
  • 这是一个陈述,而不是一个问题。即使这是一个问题,它也确实是一个太宽泛的领域,不适合 SO。

标签: java arrays swing file jtextarea


【解决方案1】:

查看this 教程,了解如何使用 TextAreas。基本上,您想要做的是遍历数组并通过 Event Dispatcher Thread(负责 GUI 的线程)打印它的内容。这通常是通过使用SwingUtils.invokeLater()

【讨论】:

    【解决方案2】:

    创建一个 JTextArea 对象。

    正如@Andrew 建议的正确函数是JTextArea.append(String)

    JTextArea textArea = new JTextArea();
    
    for(String W: Words)
      textArea.append(W);
    

    JTextArea tutorial Java Swing

    【讨论】:

    • 我试过了,它只显示数组中的最后一个单词。我希望它显示整个数组
    • 当我学习这个的时候你可能不想详细说明“对象”,我不知道一个对象有什么帮助,更不用说如何实现它了。
    • @Russell:这就是我添加官方教程链接的原因。
    • 要让它显示所有单词,请将其更改为数组(在网上查看如何)并使用 for() 循环将所有单词放入 TextField。
    • 我已经改成数组了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    相关资源
    最近更新 更多