Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何动态刷新瓦丁手风琴?_Java_Spring_Hibernate_Accordion_Vaadin - Fatal编程技术网

Java 如何动态刷新瓦丁手风琴?

Java 如何动态刷新瓦丁手风琴?,java,spring,hibernate,accordion,vaadin,Java,Spring,Hibernate,Accordion,Vaadin,我的手风琴有点问题。例如,当我尝试删除手风琴的一个标签时,我找不到任何方法。有人知道我怎么做吗 这里是我的一些代码 public ResponseUI(final Window mainWindow, boolean allowSave, final Context c) { InjectHelper.inject(this); buildMainLayout(); setCompositionRoot(mainLayout); // TODO add user

我的手风琴有点问题。例如,当我尝试删除手风琴的一个标签时,我找不到任何方法。有人知道我怎么做吗

这里是我的一些代码

public ResponseUI(final Window mainWindow, boolean allowSave, final Context c) {
    InjectHelper.inject(this);
    buildMainLayout();
    setCompositionRoot(mainLayout);

    // TODO add user code here
    //TODO: add responses to accordion

    List<Templates> templatesReenvia = templateBusinessManager.getAllTemplatesResposta();        
    boolean bandera = true;
    for(Templates tmpl : templatesReenvia) {
        accordion_respostes.addTab(new PlantillaView(mainWindow, panel_1, c, tmpl), tmpl.getSubject());
    }
    panel_1.addComponent(new ResponseForm(mainWindow,allowSave));

    panel_respostes.setScrollable(true);    
    button_1.addListener(new Button.ClickListener() {
        public void buttonClick(ClickEvent event) {    
            final Window dialog = new Window("Edició de plantilla");
            dialog.setModal(true);
            mainWindow.addWindow(dialog);
            dialog.addComponent(new PlantillaForm(mainWindow, c, false));
            dialog.setWidth("85%");
        }
    });
}
public ResponseUI(最终窗口主窗口、布尔allowSave、最终上下文c){
InjectHelper.injection(这个);
buildMainLayout();
setCompositionRoot(主布局);
//TODO在此处添加用户代码
//TODO:将响应添加到手风琴
List TemplatesEnvia=templateBusinessManager.getAllTemplatesResposta();
布尔bandera=true;
对于(模板tmpl:templatesreevenia){
accordion_respostes.addTab(新的PlantillaView(主窗口,面板_1,c,tmpl),tmpl.getSubject());
}
面板1.添加组件(新响应窗体(主窗口,allowSave));
面板响应设置可滚动(真实);
按钮\u 1.addListener(新建按钮。单击Listener(){
公共无效按钮单击(单击事件){
最终窗口对话框=新窗口(“Edicióde plantilla”);
dialog.setModal(true);
主窗口。添加窗口(对话框);
addComponent(新的PlantillaForm(主窗口,c,false));
对话框.setWidth(“85%”);
}
});
}

templateBusinessManager0
中,我有CRUD方法,所以我只需要知道在出现这种方法时如何刷新手风琴。希望有人有更好的解决方案。

您可以在任何其他组件容器中使用类似的方法删除或替换。如果组件无法自行更改其状态,则必须将其调出。

此示例应用程序在单击按钮时将一个选项卡的内容替换为其他内容。请注意,手风琴/标签页不会自动替换标签的元数据(如标题),而是从旧标签的元数据复制。在本例中,即使内容本身已交换,标题也始终显示“Tab 1”

public class AccordionUI extends UI {

private Accordion accordion;
private Panel tab1, tab2, tab3;

@Override
protected void init(VaadinRequest request) {

    HorizontalLayout hl = new HorizontalLayout();
    setContent(hl);

    tab1 = new Panel("Tab 1");
    tab2 = new Panel("Tab 2");
    tab3 = new Panel("Tab 3");

    accordion = new Accordion(tab1, tab2);
    hl.addComponent(accordion);

    Button button = new Button("Replace");
    button.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            accordion.replaceComponent(tab1, tab3);
        }
    });
    hl.addComponent(button);
}
}

瓦丁州(请参阅):您可以使用手风琴,其使用方式与标签纸相同

如果您查看TabSheet文档,您会发现如下内容:

tabsheet.removeTab(tab);
这是:

tabsheet.addTab(myTab).setCaption("My Tab");

因此,您可以使用replaceComponent()方法刷新标题、关闭选项卡或仅更改内部组件。

如果需要删除特定选项卡,可以使用
removeTab(选项卡选项卡组件)
-tab参数可以通过
getTab(component)
获得(component就是那个,您在调用
addTab(component newTabComponent)
方法时使用的组件:o) (或直接方式
replaceComponent(旧组件、新组件)
也可以使用)


如果您需要删除所有accord选项卡,我使用的是
accordionInstance.removeAllComponents()
,但如果
removeTab
replaceComponent
很糟糕,还有一种方法-您可以添加具有特定布局的选项卡,并调用
removeComponents()
addComponent(newComponent)
在该布局上:)

我需要刷新而不是删除:/remove+Add=refresh,因为它不一样object@GooDFighTy还有一个替换组件。你的第一句话提到“删除”,所以我想,这是你唯一的问题手风琴也有办法
addTab(组件,标题)
:)