Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以编程方式防止从“文件/关闭”菜单关闭OpenOffice?_Java_Openoffice.org - Fatal编程技术网

Java 如何以编程方式防止从“文件/关闭”菜单关闭OpenOffice?

Java 如何以编程方式防止从“文件/关闭”菜单关闭OpenOffice?,java,openoffice.org,Java,Openoffice.org,我创建了一个java代码来加载OpenOffice文档,并希望阻止用户从菜单file/close关闭文档 根据这份文件,似乎“亲密的例外”可以完成这项工作。然而,当我测试代码时,它似乎根本不起作用 XCloseable xCloseable = (XCloseable)UnoRuntime.queryInterface(XCloseable.class, xTextDocument); //xTextDocument is an instance of com.sun.star.text.XT

我创建了一个java代码来加载OpenOffice文档,并希望阻止用户从菜单file/close关闭文档

根据这份文件,似乎“亲密的例外”可以完成这项工作。然而,当我测试代码时,它似乎根本不起作用

XCloseable xCloseable = (XCloseable)UnoRuntime.queryInterface(XCloseable.class, xTextDocument); 
//xTextDocument is an instance of com.sun.star.text.XTextDocument
xCloseable.addCloseListener(new XCloseListener() {

    @Override
    public void disposing(EventObject event) {
        System.out.println("firing XCloseListener.disposing " + event.toString());
    }

    @Override
    public void queryClosing(EventObject event, boolean arg1)
            throws CloseVetoException {
        System.out.println("firing MyCloseListener.queryClosing " + event.toString());
        throw new CloseVetoException();
    }

    @Override
    public void notifyClosing(EventObject event) {
        System.out.println("firing MyCloseListener.notifyClosing " + event.toString());
    }
});

当我试图从菜单“文件/关闭”关闭文档时,文档窗口似乎也已关闭,但notifyClosing and disposing未启动。

我不确定这是否是个好主意。。。。用户可能出于正当理由想要关闭文档。阻止用户做他们习惯于做的事情对用户体验来说总是不好的。除非你有非常好的理由阻止他们关闭文档,否则不要尝试关闭。注意:“因为我不想让他们这么做”并不是一个很好的理由。我已经计划添加各种额外的对话框和用户界面。而且还可以控制文档的保存方式和位置,因此我认为控制OpenOffice UI将是适合我这种情况的最佳解决方案。然而,我目前正在研究插件解决方案,并将OpenOffice嵌入到我的自定义框架中。