这是我的ocx调用方法:package com.gongdian.common;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.DispatchEvents;
import com.jacob.com.Variant;public class Test {
public static void main(String[] args) throws NumberFormatException, IOException {
ActiveXComponent com = new ActiveXComponent("CLSID:{D4E203E1-313C-467A-89B9-ECBFDB718298}");
Dispatch dispath = (Dispatch) com.getObject();
//1.1. 设置联机认证模式
//long mode=1;
Variant a = Dispatch.call(dispath,"setAuthMode",new Variant(1));
System.out.println("工作模式:"+a);
//1.2. 设置系统模式 
String s = "a1a2a3a4a5a6a7a80102030405060708b1b2b3b4b5b6b7b8";
Variant b =Dispatch.call(dispath,"initSys",new Variant(0),new Variant(0),new Variant(s));
System.out.println("设置系统模式:"+b);
        //1.3. 设置客户端监听端口 
Variant c =Dispatch.call(dispath,"setCustomPort",new Variant(6000));
System.out.println("客户端监听端口 :"+c);
//1.4. 初始化线程 
Variant d =Dispatch.call(dispath,"initUdpRecvNew",new Variant(6000),new Variant(6001));
System.out.println("初始化线程  :"+d);
//1.5. 初始化文件传输线程 
Variant e =Dispatch.call(dispath,"initFileTransfer",new Variant("6004,6004,500,32"));
System.out.println("初始化文件传输线程 ="+e);
//1.9. 获取设备通讯密钥 
Variant j =Dispatch.call(dispath,"getDeviceKey",new Variant(10003),new Variant(40000));
System.out.println("获取密钥"+j);
//1.12. 文件协商指令 
//Variant l =Dispatch.call(dispath,"FileTransferInit",new Variant("0,0,1,d:\\test.txt,/weds/kq42/test.txt,10002,0"));
//System.out.println("文件协商"+l);
  
DispatchEvents events = new DispatchEvents(dispath, new KeyVoteA());
try {
System.in.read();
} catch (IOException exception) {
ComThread.Release();
System.exit(0);
}

//   int aa;
//   System.out.print("请输入一个整数:");
//   BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
//   aa=Integer.parseInt(strin.readLine());
//   if(aa==0){
//  Variant l =Dispatch.call(dispath,"serviceUdpChannelData",new Variant("10003,7000"));
//  System.out.print("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@重启:"+l);
//   }else if(aa==1){
//
//  Variant l1 =Dispatch.call(dispath,"serviceUdpChannelData",new Variant("10003,2000"));
//  System.out.print("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@流水:"+l1);
//   }
  
  

 
}

}
这是java对ocx事件的实现方法:package com.gongdian.common;import com.jacob.com.Variant;public class KeyVoteA {
//ocx事件返回给java类参数取得
public void KeyVote(Variant[] args) {
System.out.println("*********************");
         System.out.println("args[0][   "+args[0].getInt());
         System.out.println("args[1][   "+args[1].getInt());
         System.out.println("args[2][   "+args[2].getString());
   }
}
jacob调用ocx里面的方法我已经测试过了,完全可用,可就是无法监听到ocx里面的事件返回过来的参数,请各路大神不吝赐教