Java Vaadin-如何使用UriFragmentUtility类?

Java Vaadin-如何使用UriFragmentUtility类?,java,html,vaadin,Java,Html,Vaadin,我怎么做这个 我想使用一个标签(例如,如本页中的“图11.12,使用URI片段实用程序的应用程序状态管理”),如果用户单击该标签,则浏览器会聚焦该段落。一种方法是在收到该标签后使用该方法。另一种方法是使用JavaScript。SSCCE(MainUI类): 或者如何在视图中导航? VerticalLayout layout = new VerticalLayout(); Label up = new Label("Up"); Label middle = new Label("Middle");

我怎么做这个

我想使用一个标签(例如,如本页中的“图11.12,使用URI片段实用程序的应用程序状态管理”),如果用户单击该标签,则浏览器会聚焦该段落。

一种方法是在收到该标签后使用该方法。另一种方法是使用JavaScript。SSCCE(MainUI类):


或者如何在视图中导航?
VerticalLayout layout = new VerticalLayout();
Label up = new Label("Up");
Label middle = new Label("Middle");
Label down = new Label("Down");


@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = QwertUI.class)
public static class Servlet extends VaadinServlet {
}

@Override
protected void init(VaadinRequest request) {
    Button buttonUp = new Button("Up");
    Button buttonMiddle = new Button("Middle");
    Button buttonDown = new Button("Down");
    buttonUp.addClickListener(this);
    buttonMiddle.addClickListener(this);
    buttonDown.addClickListener(this);
    up.setHeight("666px");
    middle.setHeight("666px");
    down.setHeight("666px");
    layout.addComponents(buttonUp, buttonMiddle, buttonDown, up, middle, down);
    setContent(layout);
    getPage().addUriFragmentChangedListener(
            new UriFragmentChangedListener() {
        public void uriFragmentChanged(
                UriFragmentChangedEvent source) {
            enter(source.getUriFragment());
         }
     });
     enter(getPage().getUriFragment());
}

private void enter(String uriFragment){

    UI ui = up.getUI();
    if(uriFragment != null){
        switch(uriFragment){
            case "Up": ui.scrollIntoView(up);; break;
            case "Middle": ui.scrollIntoView(middle); break;
            case "Down": ui.scrollIntoView(down); break;
        }
    }
}

@Override
public void buttonClick(ClickEvent event)
{
    getPage().setUriFragment(event.getButton().getCaption());
}