기존 윈도우에 KeyListener를 추가하고 싶습니다. 나는 3 KeyDown의 잡아 싶습니다. 첫 번째 KeyDown에서 나는 Combo에 무엇인가 넣고 싶습니다. 두 번째 KeyDown에서 다른 콤보에 뭔가 넣고 싶습니다. 두 텍스트 상자가 모두 채워지면 다음 KeyDown을 사용하여 OK 단추를 시뮬레이트합니다.SWT 디스플레이에 KeyListener 추가하기
하지만 오류 위젯이 삭제되었습니다. 왜냐하면 나는 필터를 제거해야 할 때를 모른다. 창문을 다시 열면 이런 일이 일어날 것입니다!
내 코드 :
_disp.addFilter(SWT.KeyDown, new Listener() {
public void handleEvent(Event e) {
if(!_disp.isDisposed()){
_disp.removeFilter(SWT.KeyDown, this);
}
if (e.keyCode == SWT.CR) {
if (_cmbCCID.getText().isEmpty()) {
_cmbCCID.setText(_lastFiveCCID[0]);
} else if (_cmbDescription.getText().isEmpty()) {
_cmbDescription.setText(_lastFiveComment[0]);
} else if (!_cmbCCID.getText().isEmpty() && !_cmbDescription.getText().isEmpty()) {
_btnOk.notifyListeners(SWT.Selection, new Event());
}
}
}
});
이 작업은 첫 번째 클릭에만 적용됩니다. 내 윈도우는 다른 모든 KeyDowns를 가져 오지 않습니다. – user3589316