0

Vector에 데이터를 저장할 클라이언트/서버 시스템에서 사용할 GUI 프로그램을 개발 중입니다. 내가 연결을 만들 때 ObjectOutputStreamObjectInputStream을 만들었지 만 열려고 할 때 새로운 클래스로 전달하는 방법을 모르겠습니다. 내 Startup 클래스에서 나는 다른 분야뿐만 아니라 연결이 내 Startup 클래스에서 클라이언트와 서버 사이에다른 클래스에 ObjectOutputStream 전달

를 설립지기로이 코드를 수정해야 할 다른 클래스로 생성되고 전달되는 Serializable 객체 (Message m)가 ... 나는이 코드를 가지고있는 WhatToDo 클래스에서

m.yourName = tmyName.getText(); 
m.department = tdepartment.getText(); 

if (m.yourName != null && m.department != null) { 
    client = new Socket(server, port); 
    oout = new ObjectOutputStream(client.getOutputStream()); 
    oin = new ObjectInputStream(client.getInputStream()); 
    toutput.setText("Connected"); 
    oout.writeObject(m); 
    new WhatToDo (m, oout, oin); 
} 

...

Message m; 
ObjectOutputStream oout; 
ObjectInputStream oin; 

public WhatToDo(Message a, ObjectOutputStream oout2, ObjectInputStream oin2){ 
    m = new Message(); 
    m = a; 

    // this is what i'm unsure about and need help with 
    oout = oout2; //but need to construct oout first 
    oin = oin2; //but need to construct oin first 
} 

나는 새로운 ObjectOutputStream 및할 경우 내가 Startup에서했던 것처럼, 나는 서버에 새로운 연결을 만들 것입니다. Startup에 생성 된 기존 StreamsWhatToDo에 사용하고 싶습니다. 사전에 도와 주셔서 감사합니다!

버튼 누름이있는 ActionListener을 사용 중이므로 나중에 스트림을 생성자에 저장하여 ActionListener에서 사용할 수 있도록해야합니다.

+1

현재 코드에 어떤 문제가 있습니까? – Vulcan

+1

당신이하고있는 일은 모두 괜찮아 보입니다. 당신이 마지막 진술에';'을 빠뜨린 것을 제외하고는. –

답변

0

나는 코드가 현재 수행 정확히 즉 기존의 스트림

를 사용하고 싶습니다. '그러나 필요성'에 대한 의견은 잘못되었습니다.

+0

그들 (NULL 포인터 오류)을 생성하지 않고 사용하는 것에 대해 고맙다고 생각했지만 여기서는 그렇지 않습니다. 고맙습니다 –