【问题标题】:Java listeners and passing argumentsJava 侦听器和传递参数
【发布时间】:2013-05-23 11:01:12
【问题描述】:

我有一个处理 rs232 设备事件的侦听器,我想将 String 参数传递给另外两个临时侦听器。我该怎么做?

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 中的值。

【问题讨论】:

    标签: java events event-handling listener


    【解决方案1】:

    您的侦听器是否在与发送者不同的线程上运行?如果是这样,请设置BlockingQueues(每个侦听器一个),然后让您的发件人offer 项目到每个队列。然后每个侦听器从各自的队列中检索项目。

    【讨论】:

    • 它们在同一个线程中。这是一个摇摆应用程序,所以它都在 EDT 中。
    • 我需要对该字符串进行两次单独的获取: - 用户使用按钮调用将等待 rs232 侦听器输出并将其写入 Jtextfield 的 getString。 - 用户使用按钮调用来获取侦听器获取的每个字符串,并将每个字符串与 Arraylist 进行比较,直到用户按下停止按钮。
    猜你喜欢
    • 2017-10-05
    • 2019-03-29
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2012-06-01
    • 2014-10-15
    • 1970-01-01
    相关资源
    最近更新 更多