如何在点击时更改标签颜色?

时间:2019-07-03 15:44:27

标签: java user-interface gwt onclick label

如果我尝试运行for循环直到10,它会继续打印相同的标签10次。如果我更改到function.size,它将打印功能次数。 颜色仅在相同标签内发生变化,而不会影响其他标签。 我有变量是要在标签上打印的字符串,应如何将字符串分配给ArryList? 最终列表标签= new ArrayList();

STATUS = COMPLETED

1 个答案:

答案 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);
}