加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何将字符串从工作线程发送到文本区域?

发布时间:2020-12-15 08:43:03 所属栏目:Java 来源:网络整理
导读:public class Client1 implements Runnable{ ServerSocket serverSocket = null; Socket socket = null; DataInputStream dataInputStream = null; DataOutputStream dataOutputStream = null; String Buffer; TextArea ta; Handler mhandler; public Client
public class Client1 implements Runnable{

    ServerSocket serverSocket = null;
    Socket socket = null;
    DataInputStream dataInputStream = null;
    DataOutputStream dataOutputStream = null;
    String Buffer;
    TextArea ta;
    Handler mhandler;


    public Client1() {
        System.out.println("in constructor");
        EstablishConnection();  
        Buffer = new String();
//      mhandler = handler;
//      ta = t;
    }

    private boolean EstablishConnection()
    {


        try 
        {
            System.out.println("calling socket");
            socket = new Socket("192.168.1.145",8080);
            if(socket != null)
            {
                System.out.println("ContentApp"+ "Socket Successfully created");
            }
        } 
        catch (IOException e) {
            System.out.println("ContentApp"+ "Socket IOException");
            e.printStackTrace();
        }
        try 
        {
            dataInputStream = new DataInputStream(socket.getInputStream());
            System.out.println("ContentApp"+ "DataInputstream Successfully created");
        }
        catch (IOException e) {
            System.out.println("ContentApp"+ "Datainputstream failed");
            e.printStackTrace();
            return false;
        }
        try
        {
            dataOutputStream = new DataOutputStream(socket.getOutputStream());
            dataOutputStream.writeUTF("Hi This is Hinar!");
            System.out.println("ContentApp"+ "Dataoutputstream Successfully created");
        } 
        catch (IOException e) 
        {
            System.out.println("ContentApp"+ "Dataoutputstream failed");
            e.printStackTrace();
            return false;
        }

        if(socket != null)
        {
            run();


        }
        return true;
    }


    public void run() {
        while(true)
        {
            System.out.println("ContentApp"+ "Thread is running Succesfully in loop");
            try {
                System.out.println("reading from socket");
                Buffer = dataInputStream.readUTF();
                System.out.println(Buffer+"this is the data");
                Client.tarea.append(Buffer);// Text area of Frames
                /*ta.setVisible(true);
                ta.setText(Buffer+"this is the Buffer");*/



            } catch (IOException e) 
            {
                System.out.println("ContentApp"+ "Read IO Exception");
            e.printStackTrace();
            }
        }

        }
    }

解决方法

既然你没有发布任何例外或告诉我们实际出了什么问题,我只能猜测……

看看SwingUtilities类中的InvokeAndWait或InvokeLater方法:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读