Как вставить изображение в гиперссылку в GWT - PullRequest
16 голосов
/ 19 ноября 2010

Есть ли способ сделать кликабельное изображение в GWT?

Ответы [ 6 ]

14 голосов
/ 19 ноября 2010

Что вы можете сделать, чтобы вставить Image в Hyperlink:

Hyperlink link = new Hyperlink();
Image image = new Image(someUrl);
...
link.getElement().appendChild(image.getElement());

Чтобы сделать Image кликабельным, вы просто добавляете ClickHandler к нему.

4 голосов
/ 08 ноября 2011
Hyperlink link = new Hyperlink();
Image image = new Image(someUrl);
...
link.getElement().getFirstChild().appendChild(image.getElement());

будет правильно. В противном случае изображение добавляется после гиперссылки

4 голосов
/ 19 ноября 2010

Просто прикрепите ClickHandler к изображению:

Image img = new Image(URL);
img.addClickHandler(new ClickHandler() {
  @Override
  public void onClick(ClickEvent ev) {
    // do sth.
  }
};

Вот и все.Изображение кликабельно.Чтобы указать пользователю на кликабельность, просто используйте соответствующий стиль CSS, например курсор: указатель.

3 голосов
/ 29 августа 2013
    Anchor anchor = new Anchor();
    anchor.getElement().getStyle().setCursor(Cursor.POINTER); 
    anchor.addClickHandler(new ClickHandler() {
          @Override
          public void onClick(ClickEvent ev) {
              Window.Location.assign("http://url.com");
          }
    });
    Image img = new Image("image/path.jpg");
    anchor.getElement().appendChild(img.getElement());

Используйте Anchor вместо HyperLink, потому что addClickHandler не рекомендуется в HyperLink. Вторая строка добавляет указатель руки к курсору при наведении курсора на изображение. Остальное самоочевидно, я думаю.

2 голосов
/ 19 ноября 2010

Вы также можете создать ToggleButton и применить некоторые стили CSS.Тогда у вас уже есть вся поддержка ClickHandler.

1 голос
/ 19 ноября 2010

С общей точки зрения. Мы можем написать событие onclick для изображения и курсор CSS: указатель (необязательно), чтобы дать ему ощущение гиперссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...