2013-02-17 192 views
0

我可以使用java中的掃描儀獲取一個類的輸出並將其用作另一個類的輸入嗎? 我有打印像這樣一個消息,一個JFrame:使用掃描儀從控制檯獲取消息java掃描儀輸入

if(jButton1.getText().compareTo("SEND")>=0){ 
     String msg; 
     int cod=0; 
     if(jRadioButton1.isSelected()){ 
      if(jTextField1.getText().length()>=2) cod = Integer.parseInt(jTextField1.getText().substring(0, 2)); 
      if (codes.get(cod)!=null){ 
       msg=codes.get(cod).concat(jTextField1.getText().substring(2)); 
       System.out.println(msg); 
      } 
      jTextField1.setText(""); 
     } 
     else{ 
      msg=jTextField1.getText(); 
      jTextField1.setText(""); 
      System.out.println(msg); 
     } 
    } 

和類:

Scanner scanIn = new Scanner(System.in); 
for (int i = 0; i < NUM_MSGS; i++) { 
    s = scanIn.nextLine(); 
    message.setText("This is message " +s); 
    System.out.println("Sending message: " + message.getText()); 
    producer.send(message); 
} 
+0

你究竟想要做什麼?請解釋一下,請... – 2013-02-17 19:59:01

+0

我想使用JFrame的輸出創建消息。 – 2013-02-17 20:03:44

+0

我不明白...用更詳細的方式告訴我們這個場景,比如「我想從這裏接收郵件,發送到那裏,建立郵件並打印出來」等。 – 2013-02-17 20:14:54

回答

0

我認爲你可以做,在一些複雜的方式,但我可以建議只是調用一種方法。假設你想要來自控制檯和其他類的輸入。然後,您可以創建從掃描程序類和JFrame中調用的方法doSomethingWithInput(String msg)

+0

現在,掃描儀處於主要方法我不能從那裏調用非靜態方法。我不想從控制檯輸入我想從JFrame發送消息到其他類,但是當其他類需要它時,消息可能沒有準備好,否則我可能會發送很多消息,而其他類不會獲得它們,那是我的問題。 – 2013-02-17 20:14:34

+0

非靜態方法是沒有問題的。您可以創建一個對象,然後調用main方法中的方法(或者使doSomething也是靜態的)。雖然我不太瞭解你的問題。如果您調用某個方法,則會始終發送消息 - 直接在代碼中獲取消息時。我想也許你想看的是線程(但我懷疑這是必要的) - 這樣發送者和接收者都可以同時運行。 – ddmps 2013-02-17 20:22:45

+0

JFrame和其他類都在同一時間運行,所以我想要在JFrames文本字段中鍵入somthing時準確創建消息。 – 2013-02-17 20:30:51