【发布时间】:2019-10-17 05:06:41
【问题描述】:
我的目标是创建一个水平按钮栏,其中包含可变数量的按钮。每次单击按钮都应打开某个新的 gui,该 gui 嵌入到现有的 gui 中,位于 HorizontalLayout 上方。
第一个按钮应该始终存在。这是到目前为止的代码:
public class MainLayout extends VerticalLayout implements PageConfigurator
{
int number = 10;
/**
*
*/
public MainLayout()
{
super();
this.initUI();
this.createButtons();
}
private void createButtons()
{
for(int i = 1; i <= this.number; i++)
{
final Button button = new Button();
button.setText("Button" + i);
button.setHeight("120px");
button.setWidth("120px");
this.horizontalLayout.addComponentAtIndex(i, button);
}
}
@Override
public void configurePage(final InitialPageSettings settings)
{
settings.addLink("shortcut icon", "frontend/images/favicon.ico");
settings.addFavIcon("icon", "frontend/images/favicon256.png", "256x256");
}
/* WARNING: Do NOT edit!<br>The content of this method is always regenerated by the UI designer. */
// <generated-code name="initUI">
private void initUI()
{
this.div = new Div();
this.horizontalLayout = new HorizontalLayout();
this.button = new Button();
this.button.setText("Button");
this.button.setWidth("120px");
this.button.setHeight("120px");
this.horizontalLayout.add(this.button);
this.div.setWidth("100px");
this.div.setHeight("100px");
this.horizontalLayout.setWidthFull();
this.horizontalLayout.setHeight("100px");
this.add(this.div, this.horizontalLayout);
this.setSizeFull();
} // </generated-code>
// <generated-code name="variables">
private Button button;
private HorizontalLayout horizontalLayout;
private Div div;
// </generated-code>
}
我的问题:
如何在按钮的水平布局中获得滑块?这样,当按钮太多时,我可以切换视图。
稍后我想更新按钮栏,所以“数字”会在运行时改变。按钮栏应识别此更改并创建给定数量的按钮。如何实施更新?
【问题讨论】:
-
听起来您应该使用 Vaadin 附带的 Tabs 小部件来在视图之间切换。除了切换内容之外,您的按钮栏还有更多内容吗?支持动态添加/删除选项卡,当您的选项卡超出屏幕大小时,滚动条也支持。
-
我正在使用 Vaadin Flow
标签: java user-interface slider vaadin vaadin-flow