【问题标题】:How to display inputstream in JTextArea?如何在 JTextArea 中显示输入流?
【发布时间】:2013-02-01 13:48:54
【问题描述】:

这是从服务器获取流。

BufferedReader fromserver = new BufferedReader(
    new InputStreamReader(client.getInputStream()));

jTextArea1 是对象。如何在Java中以JTextArea显示输入流?

【问题讨论】:

    标签: java swing io inputstream jtextarea


    【解决方案1】:
    1. 使用JTextArea.append() or JTextArea.setText()

    2. 使用JTextArea.read()

    3. Concurency in Swing 可能有问题,必须从Workers Thread 调用XxxStreamXxxReader,使用SwingWorkerRunnable#Thread(所有输出必须包装到invokeLater()),

    【讨论】:

    • #2,JTextArea(Reader, null) 绝对是要走的路。无需自己逐行读取输入行。
    【解决方案2】:

    这个怎么样

    try {
       StringBuilder sb = new StringBuilder();
       BufferedReader fromserver = new BufferedReader(new InputStreamReader(client.getInputStream()));
       while ((thisLine = fromserver .readLine()) != null) { // while loop begins here
         sb.append(thisLine);
       } // end while 
       jTextArea1.settext(sb.toString());
     } // end try
     catch (IOException e) {
       System.err.println("Error: " + e);
     }
    

    【讨论】:

      【解决方案3】:

      您可以通过两种方式做到这一点。 首先,您可以在任何 String 变量中获取输入。

      1. JTextArea(字符串文本) 您可以在创建对象时使用上述语法

      1. 或者只是简单地为 ex jTextArea1 创建一个对象,并使用方法 append()。即jTextArea1.append(text);

      【讨论】:

        猜你喜欢
        • 2012-06-08
        • 2019-04-14
        • 1970-01-01
        • 1970-01-01
        • 2012-11-21
        • 1970-01-01
        • 2015-09-12
        • 2013-01-09
        • 2020-10-08
        相关资源
        最近更新 更多