从文本字段获取文本并使用BufferedReader对象传递给字符串

时间:2013-12-29 10:06:34

标签: java swing sockets client-server jtextfield

如何从文本字段中获取文本并使用BufferedReader对象传递给字符串?

我想从文本字段中获取文本并希望使用缓冲区读取器对象将其传递给字符串,然后在文本区域中打印该特定文本,然后使用PrintWriter对象将该文本传递给socket。

我的代码..

else if(ae.getSource()==btnsend)
        {
         try   
         {
             PrintWriter pw=new PrintWriter(socket.getOutputStream(), true);
             BufferedReader brk=new BufferedReader(new InputStreamReader(System.in));
             BufferedReader brs=new BufferedReader(new InputStreamReader(socket.getInputStream()));
             String str="";
            while(true)
            {
            // m confused after this..how to proceed..
            jtxts3.getText();
            str=brk.toString();
            jareas1.setText(str);
            pw.println();
            str=brs.toString();
            jareas1.setText("Client Says :-"+str);
            }
        }
          catch(Exception ex)
        {
            System.out.println("Exception caught : "+ex);
        }

1 个答案:

答案 0 :(得分:1)

所以我将尝试分解您的问题并将其连接到相关代码

  

问题“我想从文本字段中获取文本,并希望使用缓冲区读取器对象将其传递给字符串,然后在文本区域中打印该特定文本,然后使用PrintWriter传递该文本对象到套接字......“

  • “我想从文本字段中获取文字”

好的,这解释了这个jtxts3.getText();

  • “并希望使用缓冲区读取器对象将其传递给字符串”

等待!这是没有意义的。读者只是读。此语句声明您要将字符串从文本字段传递给reader对象。

  • “然后在文本区域中打印该特定文本”

好的,我们可以做到。 jareas1.setText(str);< - 您的尝试

  • “然后使用PrintWriter对象将该文本传递给socket”

我们也可以这样做。 pw.println();< - 您的尝试

对不起,我需要做所有这些来尝试了解你的流程。但是我对你的代码不了解的一件事是你有一个BufferedReader,你试图从控制台获取文本,还有一个你试图从中获取文本的文本字段。它是哪一个?


我将假装BufferedReader System.in对象不存在,因为我没有看到它的上下文。有了这一切说。看起来您的代码流程有点正确。我能发现的唯一错误是

  1. 您正在将文本设置为文本区域而不是附加。文本的设置是覆盖以前的文本。因此,您可能希望使用append代替setText
  2. 您正在使用println,但没有传递任何内容。也许你应该实际传递字符串。
  3. 您认为这到底是什么brs.toString();。你甚至知道如何从BufferedReader读取输入?这是一个教程How to Read from and Write to Sockets
  4. 抱歉,我试图回答这个问题,但是当我接近一个可能的解决方案时,每当我查看你的代码时,我的思绪就更加难以理解。所以看一下教程。希望能帮助到你。下一次尝试更详细地说出你的问题,解释你想要完成的事情的逻辑顺序,以及它如何适应你的编码尝试。