Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Iperlink per aprire una nuova finestra

    Come posso creare una JLabel iperlink (con testo sottolineato) per aprire una nuova jFrame?

    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    JLabel è un componente che serve a visualizzare qualcosa... un componente "passivo", che non reagisce a nulla (solitamente non si interagisce con le JLabel). Di conseguenza, non c'è nulla di "previsto" per fare ciò che vuoi fare tu (al contrario di componenti attivi, come ad esempio, JTextPane o JEditorPane, che prevendono proprio il meccanismo degli HyperText).
    Quindi, prima di procedere valuta attentamente se non sia il caso di cambiare componene.

    Se vuoi continuare sulla strada della JLabel e "interagire" con essa dovrai fare tutto a mano.
    La prima cosa che puoi fare a livello di rendering è utilizzare il codice HTML per il testo, in modo che la JLabel assuma, quantomento, le caratteristiche tipiche dei link nelle pagine web.

    Il secondo passo è quello di registrare un MouseListener sulla JLabel che risponda al "clic" (implementando, quindi, il metodo mouseClicked()).

    Il terzo passo è quello di recuperare il testo della JLabel, cercare in esso la parte relativa all'URL da aprire (il testo contenuto nell'attributo "href" del tag <A>), recuperarla, costruire un oggetto URI e passarlo al metodo browse() della classe java.awt.Desktop.

    Un eventuale quarto passo consiste nell'implementare anche i metodo mouseEntered() e mouseExited() (sempre di MouseListener) in modo da far cambiare il Cursor sul componente e dare anche un "feedback" visivo all'utente del fatto che lì c'è un link.


    Ciao.
    Ultima modifica di LeleFT; 30-10-2014 a 14:51
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.