Hi zusammen
Die Klasse ClientNetwork erzeugt ein Socket und verbindet sich mit dem Server. Anschliessend schickt der Server ein DefaultListModel, welches dann im Gui vom Client angezeigt wird - funktioniert einwandfrei! Damit das Gui von Server/Client getrennt ist(so lautet die Vorgabe), habe ich eine getMethode für das Socket erstellt, damit ich es in der nächsten Klasse verwenden kann.
Der FileLoader wird aufgerufen, wenn ich einen Button vom ClientGui drücke - funktioniert ebenfalls einwandfrei. Sobald ich aber einen Outputstream erzeugen will, schiesst es mir einen Nullpointer um die Ohren. Das Socket und die Klassenvariabel clientNetwork wurden vorher mit Syso's und if's auf null geprüft und es sind beide nicht null... Weswegen ich keinen Plan habe, wieso der Outputstream null ist...
Wer kann mir helfen?
Die Klasse ClientNetwork erzeugt ein Socket und verbindet sich mit dem Server. Anschliessend schickt der Server ein DefaultListModel, welches dann im Gui vom Client angezeigt wird - funktioniert einwandfrei! Damit das Gui von Server/Client getrennt ist(so lautet die Vorgabe), habe ich eine getMethode für das Socket erstellt, damit ich es in der nächsten Klasse verwenden kann.
Java:
public class ClientNetwork implements Runnable {
private Socket clientSocket;
private InputStream inputStream;
private ObjectInputStream objectInputStream;
private DefaultListModel listModelFiles;
private JList listFiles;
public ClientNetwork(JList listFiles,DefaultListModel listModelFiles) {
this.listModelFiles = listModelFiles;
this.listFiles = listFiles;
new Thread(this).start();
}
public void run() {
try {
clientSocket = new Socket("localhost",4444);
inputStream = clientSocket.getInputStream();
objectInputStream = new ObjectInputStream(inputStream);
listModelFiles = (DefaultListModel) objectInputStream.readObject();
listFiles.setModel(listModelFiles);
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
} catch (UnknownHostException uhe) {
uhe.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
public Socket getClientSocket() {
return clientSocket;
}
}
Der FileLoader wird aufgerufen, wenn ich einen Button vom ClientGui drücke - funktioniert ebenfalls einwandfrei. Sobald ich aber einen Outputstream erzeugen will, schiesst es mir einen Nullpointer um die Ohren. Das Socket und die Klassenvariabel clientNetwork wurden vorher mit Syso's und if's auf null geprüft und es sind beide nicht null... Weswegen ich keinen Plan habe, wieso der Outputstream null ist...
Java:
public class FileLoader implements Runnable {
private JList listFiles;
private DefaultListModel listModelFiles;
private ClientNetwork clientNetwork;
private Socket clientSocket;
private OutputStream outputStream;
private DataOutputStream dataOutputStream;
public FileLoader(JList listFiles, DefaultListModel listModelFiles) {
this.listFiles = listFiles;
this.listModelFiles = listModelFiles;
new Thread(this).start();
}
public void run() {
clientNetwork = new ClientNetwork(listFiles, listModelFiles);
clientSocket = clientNetwork.getClientSocket();
try {
outputStream = clientSocket.getOutputStream();
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
dataOutputStream = new DataOutputStream(clientSocket.getOutputStream());
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
Wer kann mir helfen?