2013-09-14 2 views
0

У вас возникли проблемы с использованием BufferedReader. Я хочу напечатать текст ввода (от моего клиента android), который должен быть напечатан на моем Java-сервере. Использование System.out.println отлично работает. Но когда я поместил его в JOptionPane, он начал печатать в диалоговом окне один за другим. (Одна строка = одно диалоговое окно, мне нужно нажать «ok», чтобы показать следующую строку в другой Joptionpane)Как напечатать несколько строк в JOptionPane с помощью BufferedReader?

Что я хочу сделать, это напечатать все строки только в одном 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"); 
      } 

ответ

1

Как об использовании StringBuilder и приложить к нему всем сообщениям затем отображать JOptionPane с этим полным StringBuilder объектом

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

JOptionPane.showMessageDialog(null, s); 
+0

Спасибо! Я получаю то, что хочу! Ура! – Kerv

1

использовать 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"); 
     } 
+0

Если бы я мог просто принять два ответа, я, вероятно, сделаю это. – Kerv

Смежные вопросы