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

    Rendere una JLabel interattiva?

    Salve. Ma non c'è un modo per far sì che si riconosca un click su una JLabel? Vorrei inserire un link in un'applicazione grafica, e quando si clicca si apre una finestra del browser e va all'indirizzo scelto... devo utilizzare per forza un JEditorPane??

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Non ha molto senso rendere interattiva una JLabel, è un componente passivo ^^
    Potresti far aprire un link alla pressione di un JButton oppure, se proprio vuoi restare sulle label, prova JXHiperlink o qualcosa di simile, da SwingX
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Ho risolto molto più semplicemente in questo modo:

    codice:
    class JHyperLink extends JLabel
    {
    	JHyperLink (final URL address, final AppletContext context)
    	{
    		setText (address.toString());
    		
    		addMouseListener
    		(
    			new MouseAdapter()
    			{
    				public void mouseClicked (MouseEvent event)
    				{
    					context.showDocument (address, "_blank");
    				}
    			}
    		);
    	}
    }

  4. #4
    Però mi rimarrebbe un'ultima cosa... come faccio a cambiare l'icona del mouse e a mettere la manina per far capire che quello è un link e ci si può cliccare? :P

  5. #5
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    io avrei usato JEditorPane e sfruttato l'hyperLinkListener
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Sempre nel MouseListener ridefinisci anche i metodi mouseEntered() e mouseExited() nei quali richiami il metodo setCursor() della JLabel passandogli il Cursor opportuno.

    Ad esempio, per far comparire la manina:
    codice:
    tuaLabel.setCursor ( Cursor.getPredefinedCursor(Cursor.HAND_CURSOR) );
    Segui la documentazione della classe Cursor per gli altri tipi di puntatore.


    Ciao.
    "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

  7. #7
    Originariamente inviato da Metflar
    io avrei usato JEditorPane e sfruttato l'hyperLinkListener
    Ho provato a caricare un JEditorPane che supporti l'HTML e risulta essere molto pesante... forse è il mio pc che è indietro :P

  8. #8
    Grazie mille ^^

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.