2013-05-28 51 views
0

我有一個處理rs232設備事件的偵聽器,我想將String參數傳遞給其他兩個臨時偵聽器。我怎樣才能做到這一點 ?Java聽衆和傳遞參數

RS232監聽器代碼:

static class SerialPortReader implements SerialPortEventListener { 

    public void serialEvent(SerialPortEvent event) { 

     if(event.isRXCHAR()){ 
      if(event.getEventValue() > 0){ 
       try { 
        String asd= serialPort.readHexString(18); 
       //asd is argument to pass to other listener 
        System.out.println(asd); 
       } 
       catch (SerialPortException ex) { 
        System.out.println(ex); 
       } 
      } 
     } 
    } 

然後,我需要一個臨時監聽器例如會做

String new = waitForPassedStringArgument(); 

或當我拿到String聽衆將在ArrayList更改值。

回答

0

您的聽衆是否在與發件人分開的線程上運行?如果是,則設置BlockingQueue(每個聽衆一個),然後將發件人offer項目分配給每個隊列。每個監聽器然後從它們各自的隊列中檢索項目。

+0

他們在同一個線程。它是搖擺應用程序,所以它將全部在EDT。 – Gravian

+0

我需要做兩個單獨的獲取此字符串: - 用戶使用該按鈕來調用將等待rs232監聽器輸出並將其寫入Jtextfield的getString。 - 用戶使用按鈕調用來獲取偵聽器獲取的每個字符串,並將每個字符串與Arraylist進行比較,直到用戶按下停止按鈕。 – Gravian