【问题标题】:How to print multiple lines in JOptionPane using BufferedReader?如何使用 BufferedReader 在 JOptionPane 中打印多行?
【发布时间】:2013-09-19 03:51:31
【问题描述】:

在使用 BufferedReader 时遇到问题。我想要的是打印要在我的 Java 服务器上打印的输入文本(来自我的 android 客户端)。使用 System.out.println 可以正常工作。但是当我把它放在JOptionPane中时,它开始在一个对话框上一个一个地打印。 (一行 = 一个对话框,我需要点击“确定”才能在不同的 Joptionpane 中显示下一行)

我想要在一个 JOptionPane.showMessageDialog 中打印所有行。

这是我的代码:

try
            {
                clientSocket = serverSocket.accept(); // accept the client connection
                inputStreamReader = new InputStreamReader(clientSocket.getInputStream());
                bufferedReader = new BufferedReader(inputStreamReader); // get the client message
                DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                Calendar cal = Calendar.getInstance();

                while ((message = bufferedReader.readLine()) != null) {

                JOptionPane.showMessageDialog(null, message);

                }

                inputStreamReader.close();
                clientSocket.close();

            } catch (IOException ex)
            {
                System.out.println("Problem in message reading");
            }

【问题讨论】:

    标签: java swing bufferedreader joptionpane


    【解决方案1】:

    如何使用StringBuilder 并将所有消息附加到它,然后显示JOptionPane 和这个完整的StringBuilder 对象

     StringBuilder s = new StringBuilder();
     while ((message = bufferedReader.readLine()) != null) {
         s.append(message+"\n");
     }
    
     JOptionPane.showMessageDialog(null, s);
    

    【讨论】:

    • 谢谢!我得到了我想要的!干杯!
    【解决方案2】:

    使用StringBuilder(或)StringBuffer逐行追加消息

    {      clientSocket = serverSocket.accept(); // accept the client connection
            inputStreamReader = new InputStreamReader(clientSocket.getInputStream());
          bufferedReader = new BufferedReader(inputStreamReader); // get the client message
                DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                Calendar cal = Calendar.getInstance();
          StringBuilder str =new StringBuilder();
    
                while ((message = bufferedReader.readLine()) != null) {
    
                 str.append(message+"\n");
                }
                JOptionPane.showMessageDialog(null, str);
    
                inputStreamReader.close();
                clientSocket.close();
    
            } catch (IOException ex)
            {
                System.out.println("Problem in message reading");
           }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-02
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 2021-04-07
      相关资源
      最近更新 更多