2010-11-19 8 views

Respuesta

14

Lo que podría hacer para insertar el Image en el Hyperlink:

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

Para hacer el Image seleccionable usted sólo tiene que añadir un ClickHandler a ella.

+1

Ni el suyo ni el de Makkes responden adecuadamente a OP. Estoy seguro de que sabe que puede vincular un manipulador de clics para hacer lo mismo, creo que estaba buscando una forma no dependiente de JS para hacerlo ... – SexyBeast

1

Desde un punto de vista general ... Podemos escribir un evento onclick para la imagen y un cursor css: puntero (opcional) para darle una sensación de hipervínculo.

2

También puede crear un ToggleButton y aplicar cierto estilo css. Entonces ya tiene todo el soporte ClickHandler incluido.

4

Sólo hay que conectar un clickHandler a la imagen:

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

Eso es todo. La imagen se puede hacer clic. Para indicar la capacidad de cliquear al usuario, simplemente use un estilo CSS apropiado como cursor: puntero.

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

sería correcto. De lo contrario, se añade la imagen tras el hipervínculo

+0

También se puede usar .getElement(). InsertFirst (Element) – Chloe

3
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()); 

Uso ancla en lugar de HyperLink porque addClickHandler se deprecia en el hipervínculo. La segunda línea agrega el puntero de mano al cursor cuando desplazas la imagen. El resto se explica por sí mismo, creo.