chatclient中的java.lang.NullPointerException

chatclient中的java.lang.NullPointerException,java,Java,我是Java的新手,我正在创建一个可以发送和接收文本的聊天客户端。但我被困在这里: Netr$IncomingReader.run(Netr.java:88)处的异常位于java.lang.Thread.run(Thread.java:745)java.lang.NullPointerException 当应用程序执行时,它会以java.lang.NullPointerException终止。请帮忙。提前谢谢 import java.io.*; import java.net.*; import

我是Java的新手,我正在创建一个可以发送和接收文本的聊天客户端。但我被困在这里:

Netr$IncomingReader.run(Netr.java:88)处的异常位于java.lang.Thread.run(Thread.java:745)java.lang.NullPointerException

当应用程序执行时,它会以
java.lang.NullPointerException
终止。请帮忙。提前谢谢

import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

import javax.swing.*;
public class Netr {
JTextArea incoming;
JTextField outgoing;
BufferedReader reader;
PrintWriter writer;
Socket sock;
JScrollPane qscroller;
public static void main(String[]args)
{
Netr ab=new Netr();
ab.go();
}
public void go()
{
JFrame frame=new JFrame("my first client baby");
JPanel panel=new JPanel();
incoming=new JTextArea();
incoming.setLineWrap(true);
incoming.setWrapStyleWord(true);
incoming.setEditable(false);
qscroller=new JScrollPane(incoming);
qscroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
qscroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
outgoing=new JTextField(20);
JButton sendbutton=new JButton("Send");
sendbutton.addActionListener(new SendButtonListener());
panel.add(qscroller);
panel.add(sendbutton);
panel.add(outgoing);
setupnetworking();
IncomingReader thef=new IncomingReader();
Thread abc=new Thread(thef);
abc.start();
frame.getContentPane().add(BorderLayout.CENTER,panel);
frame.setSize(400,500);
frame.setVisible(true);}


private void setupnetworking()
{
try
{
    ServerSocket serversock=new ServerSocket(3311);
    sock =new Socket("100.68.56.116",3311);
    Socket sock1=serversock.accept();
    InputStreamReader reader=new InputStreamReader(sock.getInputStream());
    BufferedReader streamreader=new BufferedReader(reader);
    writer=new PrintWriter(sock.getOutputStream());
    System.out.println("newtorking established");
}
catch(IOException ex)
{
    ex.printStackTrace();
}
}
public class SendButtonListener implements ActionListener
{public void actionPerformed(ActionEvent ev)
{
try
{
    writer.println(outgoing.getText());
    writer.flush();
}
catch(Exception ex)
{
    ex.printStackTrace();
}
outgoing.setText("");
outgoing.requestFocus();
}
}
public class IncomingReader implements Runnable
{
private BufferedReader streamreader;

public void run()
{
    String message;
    try
    {
        while((message= streamreader.readLine())!=null)
        {
            System.out.println("read"+message);
            incoming.append(message+"\n");

        }
}catch(Exception ex)
    {
    ex.printStackTrace();
    }
    }
}

}

您尚未在
IncomingReader
类中初始化
streamreader
变量。在不初始化它的情况下,
run()
方法对它进行
readLine()
调用。这就是为什么你会得到NPE

你的
IncomingReader。streamreader
从来没有初始化过。可能是因为有重复的答案,但不确定它是否被公平初始化,但得到的是同样的错误。我也不确定它是否值得投反对票。但是,我仍然认为这有助于解决OP的问题@user3571223您能告诉我们您做了什么更改吗?我将流读取器初始化为null并获取此异常。java.net.ConnectException:Connection timed out:connect java.lang.nullpointerexception您能不能请@keerthivasan在您的ide上运行并告诉我哪里出了问题..只需显示您需要的特定代码部分我将非常感谢你的回复