Si queremos añadir un enlace web a una aplicación en java, podemos hacer uso de botones o etiquetas, incluso se puede añadir hipervinculos a todo tipo de contenedor, basta con hacer uso de Desktop y su método browse.
La siguiente clase se extiende de un JLabel para implementar un hipervinculo
import java.awt.Cursor; import java.awt.Desktop; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.net.URI; import java.net.URISyntaxException; import javax.swing.JLabel; /** * @web https://www.jc-mouse.net/ * @author Mouse */ public class URLabel extends JLabel implements MouseListener { private URI url; /** * Constructor de clase */ public URLabel(){ //enlace por default try { url = new URI("http://www.google.com.bo"); } catch (URISyntaxException ex) {} //propiedades de JLabel this.setText("URLabel"); this.setToolTipText( url.toString() ); this.setSize(34, 18); this.setVisible(true); this.setCursor(new Cursor(Cursor.HAND_CURSOR)); this.addMouseListener(this); } /** * Metodo para asignar una direccion web * @param url URL de pagina web */ public void setURL( String url ) { try { this.url = new URI(url); this.setToolTipText( url ); } catch (URISyntaxException ex) { System.err.println( ex.getMessage() ); } } /** * Retorna la direccion web que este asignado al objeto * @return String Direccion URL */ public String getURL() { return this.url.toString(); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Rectangle r; r = g.getClipBounds(); g.drawLine(0, r.height - getFontMetrics(getFont()).getDescent(), getFontMetrics(getFont()) .stringWidth(getText()), r.height - getFontMetrics(getFont()).getDescent()); } /** * Cuando se realice un clic sobre el componente JLabel, se abre el enlace en el navegador * predefinido del sistema operativo */ @Override public void mouseClicked(MouseEvent e) { Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null; if ( desktop != null && desktop.isSupported(Desktop.Action.BROWSE) ) { try { desktop.browse( url ); } catch ( Exception ex ) { System.err.println( ex.getMessage() ); } } } @Override public void mousePressed(MouseEvent e) {} @Override public void mouseReleased(MouseEvent e) {} @Override public void mouseEntered(MouseEvent e) {} @Override public void mouseExited(MouseEvent e) {} }//--> fin clase
De esta manera, podemos utilizar el nuevo JLabel las veces que sea necesario
Implementando el JLabel con hipervinculo tenemos:
URLabel label = new URLabel(); label.setURL("https://www.jc-mouse.net"); label.setText("Visita mi Web"); label.setLocation(50, 100); this.add(label);
o.O
En este tutorial crearemos un lector de Feeds en Java/netbeans, pero antes debemosa saber que es un Feed, según Santa Wi[...]
La clase Canvas (Lienzo) de Android es una superficie que nos permite pintar figuras, texto e imágenes utilizando para[...]
¿Que son los archivos JNLP? Java Network Launching Protocol (JNLP) es una especificación usada por Java Web Start. Esta[...]
En este post realizaremos una aplicación que pueda capturar nuestra voz y convertir en texto Pasar voz a texto con Andro[...]
En este post personalizaremos un componente JComboBox para que sus elementos acepten tablas (JTable) en lugar de texto s[...]
En un post anterior vimos como utilizar GSON para serializar un objeto java en JSON, en esta oportunidad se vera el proc[...]