Java 从openoffice API控制演示窗口

Java 从openoffice API控制演示窗口,java,openoffice.org,Java,Openoffice.org,我目前正试图使用openoffice API来显示来自Java的powerpoint演示文稿——我已经找到了一个公平的方法,我已经成功地打开并显示了演示文稿。但是,有几件事我希望能够做到,但我无法用API解决: 我不希望主印象窗口出现,只是演示窗口。现在,我可以用一个属性来最小化它,但实际的演示窗口也会最小化,这是我不想要的。我也可以抓取窗口并在其上调用setVisible(false),但在加载过程中,它仍然可见一秒钟左右 我希望能够控制显示演示文稿的显示器(我在多显示器设置中使用它)。我想

我目前正试图使用openoffice API来显示来自Java的powerpoint演示文稿——我已经找到了一个公平的方法,我已经成功地打开并显示了演示文稿。但是,有几件事我希望能够做到,但我无法用API解决:

  • 我不希望主印象窗口出现,只是演示窗口。现在,我可以用一个属性来最小化它,但实际的演示窗口也会最小化,这是我不想要的。我也可以抓取窗口并在其上调用
    setVisible(false)
    ,但在加载过程中,它仍然可见一秒钟左右

  • 我希望能够控制显示演示文稿的显示器(我在多显示器设置中使用它)。我想我可能能够抓住演示文稿的窗口并按需要移动它,但我看不出如何操作-对于主窗口,我可以执行以下操作:

    XModel XModel=unorauntime.queryInterface(XModel.class,xDrawDoc)
    
    xModel.getCurrentController().getFrame().getContainerWindow().blah()

    …但我还没有找到一种方法来打开演示窗口。我希望能够直接设置窗口的边界(x、y、宽度、高度),而不仅仅是在单个显示器上定位

我可以接受第一点,我需要为我的用例解决的关键问题是第二点


对上述问题有何看法?我是一名经验丰富的Java程序员,但对UNO来说还是个新手。

第二点似乎可以通过display属性解决:

public void start() { 
    try { 
        xPresentation.setPropertyValue("Display", 1); 
    } 
    catch (Exception ex) { 
        ex.printStackTrace(); 
    } 
    xPresentation.start(); 
}
但是请注意以下几点-首先,显示索引是以1为基数,而不是以0为基数。其次,尝试在数组中设置属性并在创建时将它们传递给xPresentation似乎没有任何效果-它只对我以后设置属性有效,如上所述。第三,它不允许像我所希望的那样对窗口进行细粒度控制,只允许控制演示文稿显示的内容