gpt4 book ai didi

multithreading - 第一次点击按钮无响应

转载 作者:行者123 更新时间:2023-12-03 13:15:32 25 4
gpt4 key购买 nike

我对按钮有问题,因为它在第一次单击时不起作用。我必须单击两次,然后给出双重结果:

Button button = new Button("Click Me");
button.addClickListener(
new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
new Thread(new Runnable() {

@Override
public void run() {
DateChooser dateChooser = new DateChooser(new com.kopiright.xkopi.lib.type.Date(2013, 12, 9));
System.out.println(dateChooser.selectDate(com.kopiright.xkopi.lib.type.Date.now()).toString());
}
}).start();
}
}
);

DateChooser扩展了com.vaadin.ui.Panel类。

最佳答案

Vaadin Button始终是即时的,因此这不是问题。

问题是您正在启动一个外部线程,该线程将更新UI,并且要查看外部线程对UI所做的更改,则应使用pollig或push。在这种情况下,单击第二个按钮可将更改轮询到浏览器。但是在这种情况下,您只需删除线程即可:

button.addClickListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
DateChooser dateChooser = new DateChooser(new com.kopiright.xkopi.lib.type.Date(2013, 12, 9));
System.out.println(dateChooser.selectDate(com.kopiright.xkopi.lib.type.Date.now()).toString());
}
});

并且当使用外部线程更新Vaadin组件时,必须正确同步代码。

关于multithreading - 第一次点击按钮无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20498056/

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