Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Crea tu JLabel con hipervinculo

Crea tu JLabel con hipervinculo

Por jc mouse sábado, marzo 9, 2013

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

 

hyperlink

o.O

Tags

Artículos similares

Consultas con parámetros en Access y Java

Tenemos un archivo de base de datos Access *.MDB y queremos realizar una consulta con parámetros de búsqueda utilizando[...]

Utiliza 2 bases de datos diferentes en una aplicación parte I

Cuando se desarrolla una aplicación, puede ser un requisito que este tenga soporte para varias tipos de base de datos, s[...]

Leer archivos de texto

En este tutorial de android, vemos como leer un archivo de texto y mostrarlo en pantalla del celular, el texto elegido e[...]

Tangram: El rompecabezas chino

El Tangram es un juego chino muy antiguo, esta compuesto por 7 piezas: un paralelogramo (romboide), un cuadrado y 5 triá[...]

Recortar partes de una imagen con el mouse

En este oportunidad comparto una pequeña aplicación hecha en java para recortar partes de una imagen seleccionado con el[...]

VokoscreenNG: aplicación gratuita para grabar videos

VokoscreenNG es una herramienta versátil y de código abierto para la creación de screencasts, disponible para los sistem[...]