如果我尝试运行for循环直到10,它会继续打印相同的标签10次。如果我更改到function.size,它将打印功能次数。 颜色仅在相同标签内发生变化,而不会影响其他标签。 我有变量是要在标签上打印的字符串,应如何将字符串分配给ArryList? 最终列表标签= new ArrayList();
STATUS = COMPLETED
答案 0 :(得分:0)
在您的ClickHandler
中,您只需将所有其他标签的颜色重新设置为默认颜色(黑色?)。
otherLabel.getElement().getStyle().setColor("black");
如果其他标签很多,则应考虑将其保留在List
中。请尝试这个小例子:
final List<Label> labels = new ArrayList<Label>();
for(int i = 0; i < 10; i++) {
final Label label = new Label("Hello " + i);
label.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// change all labels color back to default
for(Label otherLabel : labels)
otherLabel.getElement().getStyle().setColor("black");
// change current label color
label.getElement().getStyle().setColor("red");
}
});
// add to list
labels.add(label);
RootPanel.get().add(label);
}