【问题标题】:Can Scanner in Java read text from a dialog boxJava中的扫描仪可以从对话框中读取文本吗
【发布时间】:2015-06-15 03:12:19
【问题描述】:

扫描仪只能从系统控制台获取输入?无法从任何对话窗口获取?

谢谢。

【问题讨论】:

    标签: java java.util.scanner


    【解决方案1】:

    Scanner 可以从任何实现了Readable 接口的对象中读取文本。

    这包括BufferedReaderCharArrayReaderCharBufferFileReaderFilterReaderInputStreamReaderLineNumberReaderPipedReaderPushbackReader 和 @9876543333333@(来自@javadoc)。不幸的是,这不包括任何对话窗口。

    将对话框窗口挂接到Scanner 的最简单方法可能是使用采用String 的构造函数构建Scanner,将对话框中的用户输入直接传递给Scanner

    【讨论】:

    • 当然可以配置一个对话窗口来传输数据并抛出一个 InputStream,然后可以将其连接到 Scanner。
    • 当然可以。有很多更直接的方法可以从对话框中获取用户输入,我以前从未考虑过这种可能性。
    • 当然是真的。我认为最初问题的根源可能只是缺乏对替代方案的知识或理解。我当然观察到 - 最近,甚至 - 扫描仪被用作输入的第一个选项,在这种情况下它显然不是合适的选择。
    • 另外,附注 - 为什么要制作 StringReader?扫描仪已经可以直接在字符串上创建;额外的层只会增加开销。
    • @Greg:再次正确。我以前从未使用过该构造函数。 :) 我认为这个问题的原因可能是他们可以使用 Scanner 的一些便捷方法来解析输入。
    【解决方案2】:

    没有;可以为任意数量的可能输入创建Scanner:文件、InputStreams、ReadableByteChannels、字符串以及任何支持 Readable 接口的东西。请参阅Constructor Summary

    【讨论】:

      【解决方案3】:

      您可以在对话框或标签上使用扫描仪,方法是先获取文本并对其进行扫描。

      String text = input.getText();
      Scanner scan = new Scanner(text);
      

      【讨论】:

        【解决方案4】:

        好吧,我尝试了Best way to determine the total number of words of a file in Java? 给出的示例:只需将new File("my-text-file.txt") 替换为字符串变量,它就可以工作...

        所以如果你把组件的文本内容拿到String中,就可以使用Scanner了。

        【讨论】:

          猜你喜欢
          • 2020-01-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-23
          • 1970-01-01
          相关资源
          最近更新 更多