Cliccare su una label per puntare a un link

di Anonimizzato11068 il
16 risposte
Ho una label.

Vorrei che quando passo con il mouse sulla scritta questa cambi di colore e alla pressione del mouse si aprisse automaticamente il browser predefinito del sistema con la pagina del motore di ricerca. E' possibile fare questo? Inoltre è anche possibile trasformare l'indicatore del mouse in manina che quando passo sulla scritta?

Un altro problema che riscontro su NetBeans è la sottolineatura delle label, trovo il bold, l'italic nella sezione font ma non vedo un sistema per settare la sottolineatura...

16 Risposte

  • Scusa ma non bastava dire che vuoi una label contenente un link?
    A questo punto... ricerchina su google!
    Possibile soluzione: link.
  • Ho dato un'occhiata al codice ma è un bel pasticcio... non si capisce un tubo...

    io su NetBeans aggiungo un evento MouseClicked e poi mi ritrovo a scrivere qui dentro:

    private void urlMouseClicked(java.awt.event.MouseEvent evt) {
    // TODO add your handling code here:
    }

    ma non ho capito cosa devo scrivere... per il cambio di colore dovrò fare un altro evento di tipo mouseEntered credo ma mi sembra strano che debba scrivere un codice come quello che mi avete postato...
  • Ho risolto tutto tranne questa cosa qui... un ultimo aiutino please!
  • Tutto risolto:

    private void urlMouseEntered(java.awt.event.MouseEvent evt) {
    url.setForeground(Color.BLUE);
    }

    private void urlMouseExited(java.awt.event.MouseEvent evt) {
    url.setForeground(Color.BLACK);
    }

    però non sono riuscito a capire come modificare il cursore in una mano e sottolineare la scritta quando si ha l'evento MouseEntered... mah... mistero... non sono neppure riuscito a capire come definire il colore in rgb... mah...
  • Per il cursore puoi usare
    url.setCursor(Cursor.HAND_CURSOR)
    per il colore rgb puoi creare un oggetto Color:
    
    new Color(float r, float g, float b)
    oppure
    new Color (float r, float g, float b, float alpha)
    In ogni caso se guardi nelle API trovi tutto!
  • Della ha scritto:


    In ogni caso se guardi nelle API trovi tutto!
    Troppa fatica per peruzzo ... tanto c'è il forum ... !
  • Il codice per il cursore non funziona ma ho risolto dalla scheda proprietà, quello per il colore non mi ha dato problemi...

    resta ignoto come sottolineare le label e come colorare il background di un jframe...

    in teoria mi aspetto di riuscire a fare questa cosa dalla scheda proprietà ma non è così... mah... mistero...

    grazie comunque per i vostri consigli
  • Per colorare il background di un jframe devi creare una classse che lo estende e ridefinire il paintcomponent se non sbaglio

    per aprire un link nel browser, le label supportano codice html, quindi puoi benissimo usare quello.

    per sottolineare la label cosa intendi?
  • Puoi scrivermi un esempio di quello che dovrei inserire nella classe estesa?

    Ho risolto con gli eventi, temo che la tua soluzione sia più complicata.

    Questo testo è sottolineato e questo no.
  • Ripeto, per sottolinearla puoi usare il codice html.

    non riesco a fare una prova ma cercando molto velocemente su google

    qui


    oltre ovviamente ai tutorial sun
  • Ma cosa centra applicare uno sfondo ad un JPanel con la sottolineatura del testo?
  • Immagino fosse relativo alla tua richiesta di esempio, visto che ti ha anche detto che per sottolineare il testo puoi usare il codice html.
  • Non capisco come posso usare codice html nel programma... non è un'applicazione web, è una semplice finestrella che gira su un normalissimo desktop... mi postate delle pagine lunghissime con dei codici mostruosi... non so come utilizzarli...
  • peruzzo ha scritto:


    non capisco come posso usare codice html nel programma... non è un'applicazione web, è una semplice finestrella che gira su un normalissimo desktop... mi postate delle pagine lunghissime con dei codici mostruosi... non so come utilizzarli...
    
    
    JLabel label = new JLabel("<html><b><u>TESTO GRASSETTO E CORSIVO</u></b></html>"));
Devi accedere o registrarti per scrivere nel forum
16 risposte