Java(JFace应用程序窗口)设置外部标签文本

时间:2015-03-02 20:28:13

标签: java label jface applicationwindow

我希望弄清楚如何在外部应用程序窗口上设置标签的文本。

我有什么:

到目前为止,我有两个窗口。第一个是用户启动程序时将出现的主应用程序窗口。第二个窗口是另一个单独的窗口,我已经创建专门来显示自定义错误窗口。

问题:我似乎无法调用我在错误窗口中创建的标签并将文本设置为自定义。为什么?我希望能够多次重复使用此窗口!此窗口的目的是在输入无效或应用程序无法读取/保存到文件时进行错误处理。

我打算发布屏幕截图,但你需要10个代表。它会更好地解释一切。

以下是Error_dialog窗口上标签的代码:

Label Error_label = new Label(container, SWT.NONE);
Error_label.setBounds(10, 10, 348, 13);
Error_label.setText("Label I actively want to change!");

这是我想要满足的条件:

if(AvailableSpaces == 10){
//Set the label text HERE and then open the window!
    showError.open();
}

我也把它包含在课程顶部:

Error_dialog showError = new Error_dialog();

1 个答案:

答案 0 :(得分:0)

只需将标签保存为对话框类中的字段,然后添加“setter”方法即可。类似的东西:

public class ErrorDialog extends Dialog
{
  private Label errorLabel;

  ... other code

  public void setText(String text)
  {
    if (errorLabel != null && !errorLabel.isDisposed()) {
      errorLabel.setText(text);
    }
  }

您需要使用如下对话框:

 ErrorDialog dialog = new ErrorDialog(shell);

 dialog.create();  // Creates the controls

 dialog.setText("Error message");

 dialog.open();

注意:您应该遵守Java变量名称的规则 - 它们始终以小写字母开头。

进一步学习使用Layouts。如果用户使用不同的字体,则使用setBounds会导致问题。