如何將驗證添加到SWT
小部件?例如。 Text
?
我都嘗試以下(在網上找到):如何驗證輸入的SWT小部件(文本)
txtPort.addListener(SWT.Verify,new Listener() {
@Override
public void handleEvent(Event event) {
String port = ((Text)event.widget).getText();
try{
int portNum = Integer.valueOf(port);
if(portNum <0 || portNum > 65535){
event.doit = false;
}
}
catch(Exception ex){
event.doit = false;
}
}
});
另外:
txtPort.addVerifyListener(new VerifyListener() {
@Override
public void verifyText(VerifyEvent e) {
String port = ((Text)e.widget).getText();
try{
int portNum = Integer.valueOf(port);
if(portNum <0 || portNum > 65535){
e.doit = false;
}
}
catch(Exception ex){
e.doit = false;
}
}
});
如果我添加一個字符,光標stucks,我甚至不能將其刪除。
即使我第一次刪除所有東西,光標也會被刪除,而我不能寫任何其他東西。
我在這裏搞什麼?我該怎麼做Text
的驗證?
在這種情況下,我只想接受一個號碼作爲端口。
使用VerifyEvent你心裏有本作的正確代碼在線例如只輸入數字嗎? – Cratylus
+1,但請抓住'NumberFormatException',不要在知道應該捕獲哪一個時使用'Exception'。 – Baz
@MikeK:似乎有效,但需要修改如下:'catch(Exception ex){if(!port.equals(「」)){e.doit = false;}} – Cratylus