Как сбросить все на ярлыке в методе onclick - PullRequest
0 голосов
/ 08 июля 2019

Я печатаю несколько этикеток, и при нажатии я меняю цвет метки, на которую нажали. Я хочу сбросить цвет метки, на которую нажали, когда я нажимаю на другую метку.

final Label functionLabel = new Label(FDTO.getFunctionName());
functionLabel.addClickHandler(new ClickHandler() {
    @Override
    public void onClick(ClickEvent event) {
        functionLabel.getElement().getStyle().setColor("red");
        // checkChild(FDTO.getFunctionCode(), functions, qaDTO, val);
    }
});

childPanel.add(functionLabel);

1 Ответ

1 голос
/ 09 июля 2019

В отличие от RadioButton s, которые можно сгруппировать, Label s являются автономными элементами, и не существует готового способа сделать то, что вы хотите.

Самый простойспособ сделать это - вручную изменить цвет каждой другой метки из метода onClick этой метки, либо одну за другой, либо итерируя по некоторому списку / массиву, где вы храните их все.
Что-то вроде:

List<Label> myLabels = Arrays.asList(functionLabel, errorLabel, someOtherLabel);
//...
functionLabel.addClickHandler(new ClickHandler() {
    @Override
    public void onClick(ClickEvent event) {
        for (Label l : myLabels) {
            l.getElement().getStyle().setColor("black");
        }
        functionLabel.getElement().getStyle().setColor("red");
        // checkChild(FDTO.getFunctionCode(), functions, qaDTO, val);
    }
});
...