当前位置: 首页 > 面试题库 >

在Vaadin中使用线程?

庾远航
2023-03-14
问题内容

我正在尝试Thread在我的项目中使用它来发送电子邮件。当我单击时Button,a
Thread启动并ProgressBar显示a。所有邮件一经发送,便ProgressBar不会消失。

这是我的代码:

Button btnSendMail = new Button("Mail");
btnSendMail.addClickListener(this);
@Override
public void buttonClick(ClickEvent event) {     
    if(event.getButton() == btnSendMail){   
            sendMail();
    }
}
}

private void sendMail(){
     List<String> list = new ArrayList<String>();
     list.add("mymail@domain.com");
     list.add("metoyou@domain.com");
     list.add("thisismymail@domain.com");

     new Thread(){
         public void run(){
             while(!isInterrupt()){
                 progressbar.setVisible(true);
                 for(String send : list){
                     new SendMailClass(send); //javamail class
                 }           
                 progressbar.setVisible(false);
                 interrupt();
    }   
}.start();


}

如何控制ProgressBar分隔符的可见性Thread


问题答案:

要从后台线程更新UI元素,您必须激活推送或轮询。

该文档可以在vaadin书中找到。

https://vaadin.com/de/book/vaadin7/-/page/advanced.push.html

除了启用推送之外,还需要按照“ 11.16.3。从另一个线程访问UI”中所述同步对UI元素的访问。



 类似资料:
  • 我目前正在尝试使用Vaadin.Spring的ViewAccessControl接口,如本教程最后一段所述。 但是在实现isAccessGranted方法时,我会得到以下错误:

  • 使用Vaadin的Table类可以向表中添加操作处理程序。例如,在以前的Vaadin版本中,当用户在表格区域内单击鼠标右键时,屏幕上会显示以下2个选项: 行动。处理程序存在于Vaadin 8中,但是不可能添加操作。在Vaadin 8中处理网格,我也没有找到任何其他方法来创建上下文菜单。 在网格中使用操作框架的方法是什么?Grid是否有其他创建上下文菜单的方法?换句话说,上面的例子是如何写的。 现有

  • 本文向大家介绍vaadin 使用Maven创建Vaadin项目,包括了vaadin 使用Maven创建Vaadin项目的使用技巧和注意事项,需要的朋友参考一下 示例 使用Maven,您可以创建具有vaadin-archetype-application原型的Vaadin项目。您也可以在IDE中添加该原型,以使用IDE创建Maven项目。 一旦执行了以上命令,您将具有以下项目结构。 创建的默认Mav

  • 我试图修改Vaadin发送到浏览器的引导Javascript。以下是有关此问题的瓦丁论坛链接:https://vaadin.com/forum#!/Thread/4252604 Vaadin使用Jsoup,因此我使用JSoupAPI在Vaadin负载中找到正确的位置来修改Javascript。当我像这样使用Jsoup API时: newHTML中的任何内容都会被转义。例如,如果newHTML是:

  • 我正试图使用Maven在Eclipse中创建一个Vaadin应用程序,但无法这样做。官方说明(https://vaadin.com/wiki/-/wiki/main/creating%20an%20Eclipse%20project)说要在Eclipse中创建一个新的Maven项目,在原型列表中创建“”vaadin-archetype-application“,我看不到这种类型的东西,然后,我添加

  • 我想选择要上传的文件,然后让用户做一些其他事情,然后当他单击提交按钮时,我想执行实际上传。 如何在不使用上载按钮的情况下执行/启动上载?