0

我正在寻找如何在外部应用程序窗口上设置标签文本。

我有的:

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

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

我打算发布屏幕截图,但你需要 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();
4

1 回答 1

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 变量名的规则——它们总是以小写字母开头。

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

于 2015-03-02T20:51:07.083 回答