То, что вы, вероятно, ищете, это Anchor
(хех, это было просто;)). Он реализует интерфейс HasClickHandlers
, поэтому вы можете добавить ClickHandler
примерно так:
Anchor a = new Anchor("This is some text", false); // Set to true if the text contains HTML tags
a.addClickHandler(new ClickHandler() {
onClick(ClickEvent event) {
//Do some stuff
}
});
Обновление:
Другим решением является использование FocusPanel
- преимущество в том, что FocusPanel
- это SimplePanel
, что означает, что вы можете установить в него другую панель, что облегчит вставку других виджетов GWT в это (в случае, если вы хотите что-то большее, чем просто текст в интерактивной области - конечно, вы можете поместить любой HTML-код в Anchor, но мой способ менее «хакерский» ИМХО).
HorizontalPanel hPanel = new HorizontalPanel();
hPanel.add(new Image("images/img.png"));
hPanel.add(new Label("Some text"));
FocusPanel focusPanel = new FocusPanel(hPanel);
focusPanel.addClickHandler(new ClickHandler() {
onClick(ClickEvent event) {
//Event fired when clicked anywhere in the hPanel - meaning the image and label
//Do some stuff, maybe show a PopupPanel
}
});
Кстати, если вам нужно всплывающее окно, проверьте виджет PopupPanel
.