2014-05-18 1 views
-1

안녕하세요! 나는 netbeans와 함께 자바에서 슈퍼 간단한 채팅 응용 프로그램을 만들고 있습니다. 하나의 메인 클래스와 하나의 jframe 클래스가 있습니다. 기호 데이터 출력을 찾을 수없는,java 클래스가 같은 프로젝트에서 변수를 찾을 수 없습니다.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    String msg = jTextField1.getText(); 
    jTextArea1.setText(msg); 
    String msgout = msg; 
    dataout.writeUTF(msgout); 
    dataout.flush(); 
    } 

그러나 말한다 다음 JFrame의 클래스에이 코드를 사용하는 것을 시도하고있다. 여기에 메신저 메인 클래스에서 데이터 출력 사용 :

try { 
      System.out.println("Waiting for clients to connect..."); 
      Socket s = ss.accept(); 
      DataOutputStream dataout = new DataOutputStream(s.getOutputStream()); 
      System.out.println("Client connected!"); 

      } 
      catch(IOException e){ 
       System.out.println("Error"); 
      } 

을 나는이 문제를 해결하려면 어떻게합니까?

답변

1

try/catch 블록 내에서 dataout이 생성되므로 수명은이 중괄호 안에있는 것입니다. 가장 좋은 방법은 그것을 인스턴스 변수로 선언하고 그런 식으로 액세스하는 것입니다.

예 :

DataOutputStream dataout = null; 

try { 
      System.out.println("Waiting for clients to connect..."); 
      Socket s = ss.accept(); 
      dataout = new DataOutputStream(s.getOutputStream()); 
      System.out.println("Client connected!"); 

      } 
      catch(IOException e){ 
       System.out.println("Error"); 
      } 
+0

나는 메인 클래스에서 그랬지만 jFrameClass는 여전히 찾을 수 없다. jFrame에서 찾을 수있는 코드를 어떻게 작성해야합니까? – user3329934

+0

JFrame 클래스는 기본 클래스와 별도의 클래스입니까? 그렇다면 수행중인 작업에 맞는 방식으로 변수에 액세스해야합니다. –

+0

예, 동일한 프로젝트이지만 별도의 클래스에 연결하는 클라이언트를 처리하는 주 클래스입니다. 그리고 다른 클래스는 jFrame 클래스입니다. jFrame 클래스는 메인 클래스에 저장된 변수를 찾지 못했습니다. 그게 문제예요 – user3329934

관련 문제