Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Crea tu JLabel con hipervinculo

Crea tu JLabel con hipervinculo

Autor 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

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Introducción a MariaDB con Java

Introducción a MariaDB con Java

Maria DB  es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL, pero con un rendimiento similar...

Simplifica tu código

Simplifica tu código

Project Lombok es una biblioteca para java que se conecta con su IDE (Integrated Development Environment – Entorno...

Script PHP – Mouse responde

Script PHP – Mouse responde

«Mouse Responde…» simula ser un alma en pena que responde cualquier pregunta que le hagan, al estilo del juego de...

Convertir imagenes JPEG a video MOV

Convertir imagenes JPEG a video MOV

Googleando me encontré con una interesante clase java «JpegImagesToMovie» que convierte imágenes JPEG a vídeo MOV de Qui...

Creación de GUI con Matlab GUIDE

Creación de GUI con Matlab GUIDE

En este videotutorial se vera la creación de Interfaces Gráficas de Usuario (GUI) utilizando MatLab GUIDE herramienta vi...

Simulador de Urna Electrónica en java

Simulador de Urna Electrónica en java

Hola 🙂 en esta ocasión un amigo del Brasil nos envía un proyecto java de una Urna Electrónica o Voto Electronico, desarr...

5 comentarios en “Crea tu JLabel con hipervinculo”

  1. MARCO TORBISCO dice:

    Esta Opcion es buenisima si quieres darle a un Usuario que maneja Pedidos On-line en un Alamacen, ya que solo podria verificar los productos, estan en su lista de manera mas rapida, y añadirle la opcion de envio de mensajes con la libreria Jmail; A por cierto aun e gustaria saber si puedo contar contigo para realizar algunos proyectos en paralelo.

    1. Mouse dice:

      claro que si campeón 🙂

  2. Freed dice:

    Podrias hacer un tutorial de como llamar una ventana por convinacion de teclas? o en un solo boton? es decir precionar F1 o la tecla A y abrir una ventana, segun encontre un ejemplo pero lo siento no lo se todo, mira este es el codigo:

    // setting the button to receive action when F3 is pressed
    InputMap keyMap = new ComponentInputMap(button);
    keyMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0), «action»);

    ActionMap actionMap = new ActionMapUIResource();
    actionMap.put(«action», new YourAction());

    SwingUtilities.replaceUIActionMap(button, actionMap);
    SwingUtilities.replaceUIInputMap(button, JComponent.WHEN_IN_FOCUSED_WINDOW, keyMap);
    // setting done

    no se como usar el inputmap, pero de ahi hasta donde se es el mas factible y facil para lograr lo que quiero hacer, saludos!!! este podria ser otro tutorial, ah y ya estoy terminando lo del Look And Feel ahi pasate un correo para cuando lotermine te lo mando.

  3. anonimo dice:

    no entendi donde poner esa programacion

  4. soldado242 dice:

    gracias pana era justo lo que buscar mil gracia

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...

En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...

Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...

Herramientas

Generador de Enlaces a Whatsapp