2014-05-18 42 views
-1

你好!我正在用NetBeans在java中製作一個超級簡單的聊天應用程序。我有一個主類和一個jframe類。在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(); 
    } 

但它說,找不到符號DATAOUT。這裏使用的IM在DATAOUT主類:

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塊內部創建的,所以它的生命週期只在這些大括號內。最好的方法是將其聲明爲實例變量,然後像那樣訪問它。

例如,

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

相關問題