I'm trying to use Thread
in my project to send emails. When I click on a Button
, a Thread
is started and a ProgressBar
is displayed. As soon as all mails are sent, the ProgressBar
doesn't disappear.
This is my code:
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("[email protected]");
list.add("[email protected]");
list.add("[email protected]");
new Thread(){
public void run(){
while(!isInterrupt()){
progressbar.setVisible(true);
for(String send : list){
new SendMailClass(send); //javamail class
}
progressbar.setVisible(false);
interrupt();
}
}.start();
}
How can I control visibility of the ProgressBar
from a separated Thread
?
Vaadin is a mature web framework for developing rich internet applications. Building web-based GUIs with Vaadin feels like developing a desktop application, which is great, comfortable and fast. However, there are situations where Vaadin is not suitable.
Since Vaadin is Java based, it is fully Object oriented. A Java developer can easily develop a website, simply by having idea of Vaadin classes and its uses. Vaadin provides plug-in supports and it is very easy to learn and integrate with other web frameworks.
Collaborative workplace web apps must typically accomodate hundreds, even thousands of concurrent users without putting a strain on the servers. Building your web app on Vaadin ensures your project a great starting point for scalability.
To update UI elements from a background thread, you have to activate either push or polling.
The documentation can be found in the vaadin book.
https://vaadin.com/de/book/vaadin7/-/page/advanced.push.html
In addition to enabling push, you also need to synchronize access to the UI elements as described in section "11.16.3. Accessing UI from Another Thread"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With