在调用方法之前禁用按钮

Disable a button before calling a method

我想在调用方法之前禁用按钮。
换句话说,我想以线性方式执行一些代码。

这是代码

@Listen("onClick = #kodIsteButtonId")
public void kodIste() {
   k = kd.findKisiByKullaniciadi(kullaniciadiId.getValue());
   if (k == null) {
         Messagebox.show("Böyle bir kullanıcı bulunamadı!", "Hata Mesajı",
            0, Messagebox.ERROR);
    } else {
         kodIsteButtonId.setDisabled(true);
         countDown(10, 6, k);
    }
}

private void countDown(int fromToZero, int sleepTime, Kisiler k) {
  tempPassword = rasgeleYeniSifre();
  sendEposta(k.getEposta(), tempPassword);
  alert("Güvenlik kodu e-postanıza gönderildi.");
  while (fromToZero > 0) {
    try {
        Thread.sleep(sleepTime * 1000);
    } catch (Exception e) {
        e.printStackTrace();
    }
    fromToZero--;
}
   sifreAlButtonId.setDisabled(false);
   clearButtonId.setDisabled(false);
   kodId.setDisabled(false);
}

当我点击按钮时,我希望看到它被禁用。
但是在运行 countDown() 方法之后,它仍然是启用的。

可能是什么原因?

原因是当您从服务器收到回复时该按钮会禁用。
对于您的情况,这是 public void kodIste() 完成的时刻。

最简单的解决方案是使用自动禁用:

<button autodisable="self" />

这会自动禁用和启用按钮。
如果你想控制按钮何时必须再次启用,你可以这样做:

<button autodisable="+self" />

Documentation can be found here.