Когда я нажимаю кнопку, я хочу сделать 2 вещи: во-первых, открыть диалоговое окно, а во-вторых, выполнить метод (который находится в файле jar). Проблема в том, что, когда я нажимаю кнопку, сначала выполняется метод, а затем открывается диалоговое окно. Код выглядит примерно так:
button.addClickListener(event -> start());
public void start() {
dialog.open(); //Second, it opens the Dialog
methodInJar(); //First it executes this method
}
Примечание. То же самое происходит независимо от того, является ли это диалоговым окном, уведомлением или каким-либо изменением в интерфейсе.
Кто-нибудь знает, в чем проблема?
Спасибо.
PD. Это целый класс:
package com.example.test;
import com.vaadin.flow.component.UI;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dialog.Dialog;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.page.Push;
import com.vaadin.flow.router.Route;
@Route("myView")
@Push
public class MyView extends VerticalLayout {
private UI ui;
private Dialog dialog = new Dialog();
public MyView(){
addAttachListener(event -> {
this.ui = event.getUI();
});
add(new Button("some button", click -> start()));
}
private void start(){
this.ui.access(() -> {
dialog.open();
});
methodInJarTest();
}
private void methodInJarTest() {
try {
System.out.println("JAR test - 10 seconds pause");
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}