【发布时间】:2015-10-20 16:26:04
【问题描述】:
我正在尝试使用 Java SWT 设计一个带有 UI 的小型 Java 应用程序:在 Eclipse 中,我创建了一个新的应用程序窗口并添加了一个按钮和一个标签。我想要做到的是,当我单击按钮时,标签的文本从“未单击”变为“已单击”。为此,我为按钮的SelectionEvent 添加了一个事件处理程序。
但是,我发现我无法从事件处理程序内部访问标签,因此我可以更改它的文本。
protected void createContents() {
shell = new Shell();
shell.setSize(450, 300);
shell.setText("SWT Application");
Button btnClickMe = new Button(shell, SWT.NONE);
btnClickMe.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
lblStatus.setText("Clicked"); // the compiler can't find lblStatus
}
});
btnClickMe.setBounds(10, 10, 75, 25);
btnClickMe.setText("Click Me");
Label lblStatus = new Label(shell, SWT.NONE);
lblStatus.setBounds(10, 47, 75, 15);
lblStatus.setText("Not clicked.");
}
我意识到这可能是一个愚蠢的问题,但我一直在寻找解决方法,但无济于事。我对使用 Java 小部件很陌生(直到现在才在 VS 中使用 C#)。
【问题讨论】: