Вы не можете сделать это без укладки. Стиль может быть внутри файла SCSS или встроенного (Csslayout). Вот как вы это сделаете .scss Вам необходимо вставить изображение в папку VAADIN/themes // images.
@import "../valo/valo.scss";
@mixin mytheme {
@include valo;
// Insert your own theme rules here
.image-background{
background-color: red;
background-image: url("images/w3-background.jpg");
}
}
и применить этот стиль, используя .addStyleName(), например:
@Theme("mytheme")
public class MyUI extends UI {
@Override
protected void init(VaadinRequest vaadinRequest) {
final VerticalLayout layout = new VerticalLayout();
setContent(layout);
layout.setSizeFull();
layout.addStyleName("image-background");
layout.addComponent(new Button("Hello, World!"));
layout.addComponent(new Button("Hello, World!"));
layout.addComponent(new Button("Hello, World!"));
layout.addComponent(new Button("Hello, World!"));
layout.addComponent(new Button("Hello, World!"));
layout.addComponent(new Button("Hello, World!"));
}
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet {
}
}
Вот скриншот:
Вы, возможно, потребуется перезагрузить URL в браузере или удалить браузер для правильной загрузки измененного CSS.
Надеюсь, это поможет. :-)
Я понял это сам, и, к счастью, мы с тобой думали одинаково. Могу я задать тебе вопрос? используя консоль chroma dev, я понял, что файл styles.css читается дважды ... это нормально? Я не могу понять, почему это так. Спасибо за ответ. – Reborn
Настройка productionMode = true разрешает это. –
К сожалению, это не решает мою проблему – Reborn