我一直在开发OpenOffice Writer扩展。目前,我需要检索当前的文档对象。以下内容应将当前组件作为Writer文档返回。
XMultiComponentFactory factory = context.getServiceManager();
XDesktop desktop = (XDesktop) factory.createInstanceWithContext("com.sun.star.frame.Desktop", context);
XTextDocument document = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, desktop.getCurrentComponent());
return document;
我的问题发生在第二行运行时。抛出以下异常:
java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to com.sun.star.frame.XDesktop
为什么createInstanceWithContext
会返回不符合请求界面的内容?有办法解决吗?
答案 0 :(得分:1)
查看文档here,获取界面有两个步骤:
Object desktop = xRemoteServiceManager.createInstanceWithContext (
"com.sun.star.frame.Desktop", xRemoteContext);
XDesktop xDesktop = (XDesktop)UnoRuntime.queryInterface(XDesktop.class, desktop);