Java Vaadin弹出窗口应在单击事件中显示和隐藏,不显示弹出窗口
有Java Vaadin弹出窗口应在单击事件中显示和隐藏,不显示弹出窗口,java,popup,vaadin,show-hide,Java,Popup,Vaadin,Show Hide,有 public void buttonClick(ClickEvent event) { MyPopup popup = new MyPopup(); getWindow().addWindow(popup); log.warn("Added POPUP"); //lot of method calling here then getWindow().removeWindow(popup
public void buttonClick(ClickEvent event) {
MyPopup popup = new MyPopup();
getWindow().addWindow(popup);
log.warn("Added POPUP");
//lot of method calling here then
getWindow().removeWindow(popup);
log.warn("Removed Popup");
}
我希望显示一个弹出窗口,在一些milisecundom之后(在昂贵的方法调用之后),它应该隐藏自己。日志上写着:
2014-02-19 15:26:51 WARN xyzClass:82 - Added POPUP
2014-02-19 15:26:51 WARN xyzClass:135 - Removed Popup
但事实是这里没有弹出窗口
如果我只显示它,以后不删除它(弹出窗口将显示)
公共作废按钮单击(单击事件){
MyPopup popup=新建MyPopup();
getWindow().addWindow(弹出窗口);
日志警告(“添加的弹出窗口”);
//那么这里有很多方法调用
日志警告(“删除的弹出窗口”);
}
我这样做的主要原因是,我想在@Vaadin实现玻璃面板/加载屏幕功能,但还没有找到更好的解决方案。任何解决方案/说明为什么弹出窗口没有显示,我将不胜感激,只是没有时间渲染它。您可以添加它,然后立即删除它。 尝试这种方法,例如:
private MyPopup popup;
public void buttonClick(ClickEvent event) {
Thread workThread = new Thread() {
@Override
public void run() {
// some initialization here
getWindow().removeWindow(popup);
}
};
workThread.start();
popup = new MyPopup();
getWindow().addWindow(popup);
}
只是没有时间渲染它。您可以添加它,然后立即删除它。 尝试这种方法,例如:
private MyPopup popup;
public void buttonClick(ClickEvent event) {
Thread workThread = new Thread() {
@Override
public void run() {
// some initialization here
getWindow().removeWindow(popup);
}
};
workThread.start();
popup = new MyPopup();
getWindow().addWindow(popup);
}
只是没有时间渲染它。您可以添加它,然后立即删除它。 尝试这种方法,例如:
private MyPopup popup;
public void buttonClick(ClickEvent event) {
Thread workThread = new Thread() {
@Override
public void run() {
// some initialization here
getWindow().removeWindow(popup);
}
};
workThread.start();
popup = new MyPopup();
getWindow().addWindow(popup);
}
只是没有时间渲染它。您可以添加它,然后立即删除它。 尝试这种方法,例如:
private MyPopup popup;
public void buttonClick(ClickEvent event) {
Thread workThread = new Thread() {
@Override
public void run() {
// some initialization here
getWindow().removeWindow(popup);
}
};
workThread.start();
popup = new MyPopup();
getWindow().addWindow(popup);
}
根据Vaadin版本的不同,您可以使用插件(Vaadin 6)或名为(Vaadin 7)的内置功能。
由于它,您可以将耗时的操作移动到另一个类,从而将业务逻辑与表示层分离。您可以在上面的链接中找到使用示例。根据Vaadin版本的不同,您可以使用插件(Vaadin 6)或名为(Vaadin 7)的内置功能。
由于它,您可以将耗时的操作移动到另一个类,从而将业务逻辑与表示层分离。您可以在上面的链接中找到使用示例。根据Vaadin版本的不同,您可以使用插件(Vaadin 6)或名为(Vaadin 7)的内置功能。
由于它,您可以将耗时的操作移动到另一个类,从而将业务逻辑与表示层分离。您可以在上面的链接中找到使用示例。根据Vaadin版本的不同,您可以使用插件(Vaadin 6)或名为(Vaadin 7)的内置功能。
由于它,您可以将耗时的操作移动到另一个类,从而将业务逻辑与表示层分离。您可以在上面的链接中找到使用示例。Hmm。。。有趣的是,我现在检查它,但你做相反的你只是删除它第一!然后addWindow()可以修复代码吗?或者我可能不明白。。。。(popup也在后面声明)抱歉,Alexey,但我真的不明白,因为你线程.start(),然后说getWindow.addWindow(popup),所以你首先运行线程()并删除窗口,然后添加它,这看起来与我想要实现的正好相反:我想创建一个模型弹出窗口(稍后将其视为玻璃面板)然后做一些非常繁重的计算,然后当我完成时,我想关闭这个模型对话框(glasspanel),无论如何,由于您的努力,我对它投了赞成票,但我真的很想理解。从外部线程访问Vaadin组件需要正确同步。示例代码中缺少同步。这个插件似乎正是我所需要的!隐马尔可夫模型。。。有趣的是,我现在检查它,但你做相反的你只是删除它第一!然后addWindow()可以修复代码吗?或者我可能不明白。。。。(popup也在后面声明)抱歉,Alexey,但我真的不明白,因为你线程.start(),然后说getWindow.addWindow(popup),所以你首先运行线程()并删除窗口,然后添加它,这看起来与我想要实现的正好相反:我想创建一个模型弹出窗口(稍后将其视为玻璃面板)然后做一些非常繁重的计算,然后当我完成时,我想关闭这个模型对话框(glasspanel),无论如何,由于您的努力,我对它投了赞成票,但我真的很想理解。从外部线程访问Vaadin组件需要正确同步。示例代码中缺少同步。这个插件似乎正是我所需要的!隐马尔可夫模型。。。有趣的是,我现在检查它,但你做相反的你只是删除它第一!然后addWindow()可以修复代码吗?或者我可能不明白。。。。(popup也在后面声明)抱歉,Alexey,但我真的不明白,因为你线程.start(),然后说getWindow.addWindow(popup),所以你首先运行线程()并删除窗口,然后添加它,这看起来与我想要实现的正好相反:我想创建一个模型弹出窗口(稍后将其视为玻璃面板)然后做一些非常繁重的计算,然后当我完成时,我想关闭这个模型对话框(glasspanel),无论如何,由于您的努力,我对它投了赞成票,但我真的很想理解。从外部线程访问Vaadin组件需要正确同步。示例代码中缺少同步。这个插件似乎正是我所需要的!隐马尔可夫模型。。。有趣的是,我现在检查它,但你做相反的你只是删除它第一!然后addWindow()可以修复代码吗?或者我可能不明白。。。。(popup也在后面声明)抱歉,Alexey,但我真的不明白,因为你线程.start(),然后说getWindow.addWindow(popup),所以你首先运行线程()并删除窗口,然后添加它,这看起来与我想要实现的正好相反:我想创建一个模型弹出窗口(稍后将其视为玻璃面板)然后做一些非常繁重的计算,然后当我完成时,我想关闭这个模型对话框(glasspanel),无论如何,由于您的努力,我投票支持它,但我真的很想理解。从外部线程访问Vaadin组件需要正确同步