打开Office扩展从设置页面获取文本字段的值

时间:2016-06-23 06:30:03

标签: java plugins textfield openoffice.org

我目前正在开发一个Open Office Extension,我有一些麻烦。 我在OpenOffice Writer选项卡中创建了一个包含3个Textfields的设置页面。 我现在想要获取用户在此字段中输入的文本。

我试过了:

    XControl textfield2 = _xControlCont.getControl("TextField2");


    XTextComponent username = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, textfield2);


    passwd = password.getText();

我在开头就得到了Nullpointer异常,我认为问题在于,使用此代码,当Optionspage未打开时,我无法获得Textfield的值。

我在一个单独的类中运行相同的代码,我测试所有输入的值是否正确以及是否可以连接到我们的服务器。 我尝试使用getter方法从那里获取Code,但这也不起作用。

这是一个例子:

    @Override
  public void actionPerformed(ActionEvent actionEvent) {
    boolean testConnection = false;
    XControl label = _xControlCont.getControl("Label4");
    XFixedText xLabel = (XFixedText) UnoRuntime.queryInterface(XFixedText.class, label);


    XControl textfield2 = _xControlCont.getControl("TextField2");



    XTextComponent username = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, textfield2);



    user = username.getText();}

然后在这个方法之外我使用的是getter。 这是我得到的例外情况:

  

线程“Thread-15”中的异常java.lang.NullPointerException       在org.openoffice.demo.DocumentUpload.run(DocumentUpload.java:56)

我希望你们中的一个能帮助我。

1 个答案:

答案 0 :(得分:0)

显然_xControlCont为空。确保代码在使用之前始终创建对象。

有一个在https://wiki.openoffice.org/wiki/API/Samples/Groovy/Office/RuntimeDialog使用XControlContainer的示例。

修改

页面未打开时,请勿访问文本字段。而是在页面打开时将文本字段的字符串保存到变量中。然后稍后阅读保存的字符串。

根据代码,字符串也可以保存到永久存储器(如user field variables或数据文件),或作为参数从对话框窗口返回。例如:

optionsDialog.doExecute()
results = optionsDialog.getResults()