【问题标题】:Get text from text field and pass into string using BufferedReader object从文本字段中获取文本并使用 BufferedReader 对象传递给字符串
【发布时间】:2013-12-29 10:06:33
【问题描述】:

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

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

我的代码..

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);
        }

【问题讨论】:

  • 你的问题是什么?
  • @sᴜʀᴇsʜᴀᴛᴛᴀ 问题隐藏在标题中。 (我觉得标题不应该是一个问题,而是一个陈述,问题在正文中。但很少有人会同意我的观点。) OP 为了尽快获得更好的帮助,请发布SSCCE
  • @AndrewThompson:我非常同意;这个问题应该(至少)重述容易被忽视的)标题。 user3143630:对于example
  • @trashgod ".. 容易被忽视的) 标题" 我通常会打开 9 或 10 个问题,然后(在时间允许的情况下)实际返回每个问题。那时,我会忽略标题并直接进入正文。 唯一我可能会注意到标题的原因是在搜索“?”在页面中(这是我经常做的事情——主要是因为我想直接跳到重点)。 ..继续我修改帖子以将问题添加到正文中的习惯。 (并提示人们确保在“知道可以回答的人吗?”之前至少有一个“?”。。)

标签: java swing sockets client-server jtextfield


【解决方案1】:

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

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

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

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

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

等等!这是没有意义的。读者只是阅读。此语句声明您希望将字符串从文本字段传递到阅读器对象。

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

好的,我们可以做到。 jareas1.setText(str);

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

我们也可以这样做。 pw.println();

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


我将假设 BufferedReader System.in 对象不存在,因为我看不到它的上下文。说了这么多。您的代码流程似乎有些正确。我能发现的唯一缺点是

  1. 您将文本设置到文本区域而不是追加。文本所做的设置是覆盖以前的文本。所以你可能想使用append 而不是setText
  2. 您正在使用println,但没有向它传递任何内容。也许你应该真正传递字符串。
  3. 您认为这到底是做什么的brs.toString();。你甚至知道如何从 BufferedReader 读取输入吗?这里有一个教程How to Read from and Write to Sockets

抱歉,我试图回答这个问题,但当我接近一个可能的解决方案时,每次查看您的代码时,我的思绪更加难以捉摸。所以看看教程。希望能帮助到你。下次尝试更仔细地表达您的问题,以解释您要完成的工作的逻辑顺序以及它如何适合您的编码尝试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 2017-04-02
    • 1970-01-01
    • 2018-12-05
    相关资源
    最近更新 更多