У меня странный случай с SWT и Button после использования setEnabled()
- кажется, если я отключаю и включаю кнопку хотя бы один раз - я больше не могу правильно щелкать мышью по ней ... Уже уменьшен код до базового:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class TestButton {
public TestButton() {
Display display = new Display();
Shell shell = new Shell(display);
GridLayout mainLayout = new GridLayout();
shell.setLayout(mainLayout);
shell.setSize(100, 100);
Button testButton = new Button(shell, SWT.PUSH);
testButton.addSelectionListener(new TestClickListener());
testButton.setText("Click me!");
//testButton.setEnabled(false);
//testButton.setEnabled(true);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
class TestClickListener implements SelectionListener {
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
@Override
public void widgetSelected(SelectionEvent e) {
System.out.println("Click!");
}
}
public static void main(String[] args) {
new TestButton();
}
}
Когда я оставляю эти две строки закомментированными - я могу правильно нажимать на кнопку и всегда получать «Клик!» вошел в систему, но если я раскомментирую их - тогда я больше не могу щелкнуть мышью по кнопке - кнопка визуально нажимается, но ничего не регистрируется ...
Я что-то здесь не так делаю? Или, может быть, это какая-то ошибка на платформе Linux? Потому что на Mac, работающем с тем же кодом, у меня никогда не возникало таких проблем ...
Спасибо за любую подсказку!
P.S. Выполнение кода в Ubuntu 9.10, Gnome + Compiz, Sun Java 1.6.0.16