Вы можете легко скрыть кнопку с помощью button.setVisible (false).Настоящий трюк - вернуть кнопку назад.Одним из них является сделать это в потоке и иметь достаточную задержку, прежде чем переключить кнопку обратно видимым.Вот пример (синтаксис Java 8, чтобы сделать его более компактным). Это работает как с Vaadin 7, так и с 8.
final Button print = new Button("Print");
final UI ui = this; // or UI.getCurrent() or getUI() depending where you are
final JavaScript js = JavaScript.getCurrent();
print.addClickListener(event -> {
Thread t = new Thread(() -> {
ui.access(() -> {
print.setVisible(false);
js.execute("print();");
});
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ui.access(() -> print.setVisible(true));
});
t.start();
});
layout.addComponent(print);
Альтернативный подход - использовать темы, т. Е.
Button print = new Button("Print");
print.addStyleName("no-print");
Иследующее в ваш файл mytheme.scss, перед @mixin mytheme
@media print {
.no-print {
display:none;
}
}