У меня есть текстовый виджет, который содержит числовое значение для порта (TCP). Я проверяю значение, поскольку максимальный размер порта составляет 65535.
Проблема:
Поле изначально содержит значение 8001. Теперь, если пользователь дважды щелкает текстовый виджет, будет выделен весь текст. Он хочет ввести новый порт, например, 7002.
Для проверки На методе VerifyListener - verifyText я использую текущее значение текстового виджета (8001) и набранное в char (7).
-> 80017 недействительно
textField.addVerifyListener(new VerifyListener() {
@Override
public void verifyText(VerifyEvent e) {
String text = ((Text) e.widget).getText();
try {
if(Integer.parseInt(text+e.character) > 65535) {
MessageBox.openError( composite.getShell(),
"Invalid value",
"Invalid value" );
e.doit = false;
}
} catch (Exception e2) {/*ignore*/}
}
});