gpt4 book ai didi

java - 包含另一个小部件的 gwt 小部件 : 2 different clickhandlers

转载 作者:行者123 更新时间:2023-12-02 06:10:57 25 4
gpt4 key购买 nike

我正在研究 GWT 框架,并尝试创建一个自定义小部件:此小部件是一个包含操作菜单的按钮。

如果您单击三角形区域,我想要一个带有一些选项(可能的操作)的菜单,如果我单击按钮的其他部分,我希望该操作是列表中的第一个。我已将 ListBox 小部件放入 Button 小部件中,并且我想要 2 个不同的 clickListener。问题是按钮内的列表框的监听器不起作用。你知道为什么吗?

按照代码进行操作

公共(public)类 MyClass 扩展了 Composite {

private ListBox options;
private Button saveButton;
private HorizontalPanel savePanel;
private int indexHandler;

public MyClass(String label, List<String> operationList, final List<Command> commandList) {

savePanel = new HorizontalPanel();
initWidget(savePanel);

options = new ListBox();
saveButton = new Button(label);


for(String operation : operationList){
options.addItem(operation);
}

options.sinkEvents(Event.ONCLICK);

options.addClickHandler(new ClickHandler() {

@Override
public void onClick(ClickEvent event) {

System.out.println("Test1");
indexHandler = options.getSelectedIndex();
commandList.get(indexHandler).execute();
options.setItemSelected(0, true);
}
});

saveButton.getElement().appendChild(options.getElement());

saveButton.addClickHandler(new ClickHandler() {

@Override
public void onClick(ClickEvent event) {

System.out.println("Test2");

commandList.get(0).execute();
options.setItemSelected(0, true);

}

});

savePanel.add(saveButton);
}

}

最佳答案

不要在 ListBox 上使用 ClickHandler。请改用 ChangeHandler。

另外,我认为您不需要在这里搞乱 Elements。只需将 Button 小部件和 ListBox 小部件添加到容器(即某个面板)即可。如果需要,您可以在列表框顶部添加按钮。

关于java - 包含另一个小部件的 gwt 小部件 : 2 different clickhandlers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com