JAVA GWT 在点击时更改小部件颜色
JAVA GWT change widget color on click
我有一个自定义 class,它扩展了 Composite,它扩展了小部件。我添加了一个 domHandler 来处理 ClickEvents。目前我在点击时将颜色设置为蓝色。该小部件属于一个面板,该面板包含许多与此同时发生的小部件 (TripEventItem)。当单击不同的小部件时,我希望颜色变回黑色文本。知道怎么做吗?
final TripEventItem item = new TripEventItem(results.get(i), tripNumber);
tripNumber++;
item.addDomHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
finalResults.get(item.getTripId() - 1);
List<LocationEvent> events = item.getTripEvent();
listener.displayResults(new ArrayList(events));
item.getElement().getStyle().setColor("blue");
}
}, ClickEvent.getType());
单击一个项目时,在您的处理程序中您无法知道其他项目的状态。您可以将所有项目保存在一个列表中。然后迭代此列表并放置您的 dom 处理程序。您 onClick
必须迭代此列表并恢复颜色。然后为当前项目应用由单击事件引起的更改。
一个粗略的例子是这样的
final List<TripEventItem> items = new ArrayList<>();
for(int i = 0; i < results.size(); i++) {
final TripEventItem item = new TripEventItem(results.get(i), tripNumber);
items.add(item);
}
for(int i = 0; i < items.size(); i++) {
final TripEventItem item = items.get(i);
item.addDomHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
for(int i = 0; i < items.size(); i++) {
TripEventItem otherItem = items.get(i);
restore(otherItem);
}
item.getElement().getStyle().setColor("blue");
}
}, ClickEvent.getType());
}
我有一个自定义 class,它扩展了 Composite,它扩展了小部件。我添加了一个 domHandler 来处理 ClickEvents。目前我在点击时将颜色设置为蓝色。该小部件属于一个面板,该面板包含许多与此同时发生的小部件 (TripEventItem)。当单击不同的小部件时,我希望颜色变回黑色文本。知道怎么做吗?
final TripEventItem item = new TripEventItem(results.get(i), tripNumber);
tripNumber++;
item.addDomHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
finalResults.get(item.getTripId() - 1);
List<LocationEvent> events = item.getTripEvent();
listener.displayResults(new ArrayList(events));
item.getElement().getStyle().setColor("blue");
}
}, ClickEvent.getType());
单击一个项目时,在您的处理程序中您无法知道其他项目的状态。您可以将所有项目保存在一个列表中。然后迭代此列表并放置您的 dom 处理程序。您 onClick
必须迭代此列表并恢复颜色。然后为当前项目应用由单击事件引起的更改。
一个粗略的例子是这样的
final List<TripEventItem> items = new ArrayList<>();
for(int i = 0; i < results.size(); i++) {
final TripEventItem item = new TripEventItem(results.get(i), tripNumber);
items.add(item);
}
for(int i = 0; i < items.size(); i++) {
final TripEventItem item = items.get(i);
item.addDomHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
for(int i = 0; i < items.size(); i++) {
TripEventItem otherItem = items.get(i);
restore(otherItem);
}
item.getElement().getStyle().setColor("blue");
}
}, ClickEvent.getType());
}