Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - JLabel con testo gradiente
Forum - Java - JLabel con testo gradiente

Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 12:56
Giovedì, 11/10/2012
Ciao a tutti vorrei sapere se esiste un modo per colorare con un GradientPaint il testo di una Jlabel. Confido in voi  :hail:

PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 13:58
Giovedì, 11/10/2012
Che io sappia,  dovresti implementare il codice del metodo paint() relativo al JLabel.
Codice sorgente - presumibilmente Java

  1. class MyLabel extends JLabel{
  2.  
  3.   public MyLabel(){}
  4.  
  5.   public void paint(Graphics g){
  6.  
  7.     //disegno il testo con gradiente
  8.  
  9.   }
  10. }


PM Quote
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 22:56
Giovedì, 11/10/2012
Innanzitutto ciao e grazie per la risposta :)
ti faccio vedere cosa ho fatto però non mi da nessun testo e nessun colore :om:
Codice sorgente - presumibilmente Java

  1. package shapedraw;
  2.  
  3. import java.awt.Color;
  4. import java.awt.GradientPaint;
  5. import java.awt.Graphics;
  6. import java.awt.Graphics2D;
  7. import java.awt.RenderingHints;
  8. import javax.swing.JLabel;
  9.  
  10. /**
  11.  *
  12.  * @author Bububs
  13.  */
  14. public class MyJLabel extends JLabel {
  15.     public static JLabel label;
  16.     private Color startColor = new Color(192, 192, 192);
  17.     private Color endColor = new Color(82, 82, 82);
  18.     private String testo = "";
  19.     private GradientPaint GP;
  20.  
  21.     public MyJLabel(String text, Color coloreBase) {
  22.         super("");
  23.         setText("");
  24.         testo = text;
  25.         startColor = Utility.schiarisciColore(coloreBase);
  26.         endColor   = Utility.scurisciColore(coloreBase);
  27.         setForeground(Color.WHITE);
  28.         setHorizontalAlignment(JLabel.CENTER);
  29.         setFocusable(false);
  30.         setOpaque(true);
  31.         label = (JLabel) this;
  32.     }
  33.    
  34.     public void paintComponent(Graphics g) {
  35.         Graphics2D g2d = (Graphics2D) g.create();
  36.         g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  37.         GP = new GradientPaint(0, 0, startColor, 0, getHeight(), endColor, true);
  38.         g2d.setPaint(GP);
  39.         g2d.drawString(testo, 0, 0);
  40.         g2d.dispose();
  41.  
  42.         super.paintComponent(g);
  43.     }
  44. }


come mai non esce ciò che mi aspetto? :d

Ultima modifica effettuata da bububs il 11/10/2012 alle 22:58
PM Quote
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 10:30
Venerdì, 12/10/2012
Risolto :blush:
bastava modificare il parametro y del drawString a 20 :rofl: perchè la scritta c'era ma era molto sopra :rofl:

PM Quote
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 11:44
Venerdì, 12/10/2012
Bravo, ricordati che la coordinata (0,0) è nell'angolo in alto a sinistra dell'area di disegno!
Ciao alla prossima:)

PM Quote