Я пишу Java-приложение для ввода данных с использованием Eclipse и SWT. Естественно, у него очень много текстовых объектов.
Я хотел бы, чтобы при вводе чего-либо в одно поле фокус автоматически переключался на следующее поле.
Заранее спасибо
final Text textBox = new Text(shell, SWT.NONE); textBox.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (x.getText().length() == 1); { x.traverse(SWT.TRAVERSE_TAB_NEXT); } } });
Возможно, вы также захотите взглянуть на интерфейс VerifyListener. Смотрите этот интересный пост в блоге для предостережения: http://eclipsenuggets.blogspot.com/2008/10/eclipse-bug-patterns-selfish-validation.html
final Text textBox = new Text(shell, SWT.NONE); textBox.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent arg0) { if (textBox.getText().equals("") == false) { textBox.traverse(SWT.TRAVERSE_TAB_NEXT); } }});
Я предполагаю, что вы хотите изменить фокус после поле было заполнено. Я предлагаю использовать DocumentListener (или как там его называет SWT), чтобы получать уведомления об изменениях содержимого поля: если у него правильное количество символов, перейдите к следующему полю.