gpt4 book ai didi

java - 在 SWT 中验证文本并尝试清除它但不起作用

转载 作者:行者123 更新时间:2023-11-30 03:56:33 26 4
gpt4 key购买 nike

我正在尝试验证 SWT 中的文本仅允许二进制数字并且它可以工作,但我的问题是我有一个需要重置字段的按钮,但它不起作用。

这是代码

DACMUX.addVerifyListener(new VerifyListener() {

public void verifyText(VerifyEvent e) {
e.doit = false;

char myChar = e.character;
if (myChar == '1' || myChar == '0' || myChar == '\b'){
e.doit = true;
}
}
});

reset.addSelectionListener(new SelectionListener() {

@Override
public void widgetSelected(SelectionEvent e) {
DACMUX.setText("");

}

@Override
public void widgetDefaultSelected(SelectionEvent e) {
// TODO Auto-generated method stub

}
});

最佳答案

您遇到的有趣案例。我花了一段时间才弄清楚。

对,所以这里是:调用 setText("") 后,将触发 VerifyListener。它会检查您的状况并验证为 false,因此不会发生任何变化。

要使其正常工作,您需要在 if 中添加一个额外的 OR 情况,以检查 Event#text 是否等于 "" 。当您调用 setText("") 时就会出现这种情况。它不会打乱你的其他逻辑。

所以这是有效的if:

if (myChar == '1' || myChar == '0' || myChar == '\b' || e.text.equals(""))
{
e.doit = true;
}

关于java - 在 SWT 中验证文本并尝试清除它但不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23028722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com