我希望弄清楚如何在外部应用程序窗口上设置标签的文本。
我有什么:
到目前为止,我有两个窗口。第一个是用户启动程序时将出现的主应用程序窗口。第二个窗口是另一个单独的窗口,我已经创建专门来显示自定义错误窗口。
问题:我似乎无法调用我在错误窗口中创建的标签并将文本设置为自定义。为什么?我希望能够多次重复使用此窗口!此窗口的目的是在输入无效或应用程序无法读取/保存到文件时进行错误处理。
我打算发布屏幕截图,但你需要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();
答案 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
会导致问题。