簡體   English   中英

如何在點擊時更改標簽顏色?

[英]how to change label color on click?

如果我嘗試運行for循環直到10,則將相同標簽打印10次。 如果我更改到function.size,它將打印功能次數。 顏色僅在相同標簽內發生變化,而不會影響其他標簽。 我有變量是要在標簽上打印的字符串,應如何將字符串分配給ArryList? 最終列表標簽= new ArrayList();

                for(int k = 0; k <=1; k++) {
                     final Label label = new Label(FDTO.getFunctionName());

                   // final  Label functionLabel = new Label(FDTO.getFunctionName());
                    label.addClickHandler(new ClickHandler() {     

                    public void onClick(ClickEvent event) {

                         for(Label otherLabel  : labels)
                             otherLabel.getElement().getStyle().setColor("black");
                        // functionLabel.getElement().getStyle().setColor("red");
                        label.getElement().getStyle().setColor("red");
                        checkChild(FDTO.getFunctionCode(), functions, qaDTO, val);
                    }
                });

                    labels.add(label);


                    childPanel.add(label);
        }

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM