我现在用了一个Comfyj来调用OCX控件,已经可以在JFrame中调用出来控件了。
调用的方法大致如下: 
public class Test extends JFrame {  public Test (){
    Container contentPane = getContentPane();
    final OleContainer oleContainer = new OleContainer();
    oleContainer.createObject(CLASS_ID);
    getContentPane().add(oleContainer, BorderLayout.CENTER); 
  }
}
这样应该是通过getContentPane()取得JFrame的panel然后将控件add到这个panel中,可是如果我直接new一个JPanel再add控件的话就是没都显示不出来了,是因为JPanel是轻量级的问题么?OleContainer 应该是重量级的
java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Canvas
          extended bycom.jniwrapper.win32.automation.OleContainer 在JPanel中直接用的addpublic Test extends JPanel(){ 
  pulic Test(){ 
    oleContainer.createObject(CLASS_ID);
    oleContainer.createObject(CLASS_ID); 
    add(oleContainer, BorderLayout.CENTER); 
  } 
}
实际上我是想把这个控件放在一个TopComponent(Component的子类,NetBeans里的)里,如果直接放在JPanel里不行还有什么办法?小弟刚接触Swing不久很多东西不知道,麻烦大侠们指点一下啊~