【发布时间】:2014-02-15 13:02:21
【问题描述】:
我正在为用户界面开发一个带有 SWT 的简单 Java 应用程序。 一切正常,但我在变量声明顺序方面遇到了一些问题(这是我的第一个 SWT 应用程序)。
我有两个按钮,称为 btnStop 和 btnStart,并附加了一个 SelectionAdapter 事件。
这是他们应该有的行为:
- 当我点击按钮 btnStart 时,它的事件必须设置 btnStard 禁用和 btnStop 启用;
- 按钮 btnStop 也是如此:另一个事件必须禁用 btnStop 本身并启用 btnStart。
事实是:如果我在 btnStart 之前声明 btnStop,则前者的事件不能将后者设置为禁用,反之亦然,因为 Eclipse 表示两个变量之一(取决于声明顺序)尚未初始化。
下面是部分代码:
final Button btnStop = new Button(shlFinalFantasyXiv, SWT.NONE);
btnStop.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
Check.keepPinging = false;
comboServer.setEnabled(true);
btnStart.setEnabled(true); // <- ERROR HERE
btnStop.setEnabled(false);
}
});
btnStop.setBounds(357, 106, 75, 25);
btnStop.setText("Stop");
final Button btnStart = new Button(shlFinalFantasyXiv, SWT.NONE);
btnStart.addSelectionListener(new SelectionAdapter() {
// some stuff
}
如果您有任何建议,我们将不胜感激。提前感谢您的帮助。
【问题讨论】: