Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Alexis Vargas Arteaga en 6 Noviembre 2010, 17:14 pm



Título: Ayuda - Fondo degradado JPanel
Publicado por: Alexis Vargas Arteaga en 6 Noviembre 2010, 17:14 pm
Buenas a todos:

Quisiera que me ayudaran con lo siguiente:

Quiero crear un aplicacio JFrame donde el fondo sea degradado he buscado en la web y encontré el siguiete pero no me ha funcionado sabrían por qué o que me recomiendan.

Código
  1. import java.awt.Color;
  2. import java.awt.GradientPaint;  
  3. import java.awt.Graphics;  
  4. import java.awt.Graphics2D;  
  5. import java.awt.Rectangle;
  6. public class NuevoJPanel extends javax.swing.JPanel{
  7.  
  8.    private Color color1 = new Color(255,255,255);
  9.  
  10. private Color color2 = new Color(0,0,0);
  11.  
  12.    protected void paintComponent(Graphics g){  
  13.     Graphics2D g2 = (Graphics2D) g.create();  
  14.           Rectangle clip = g2.getClipBounds();  
  15.       float x=getWidth();  
  16.           float y=getHeight();  
  17.        g2.setPaint(new GradientPaint(0.0f, 0.0f,   color1.darker(),  
  18.       getHeight(), color2.darker()));
  19.        g2.fillRect(clip.x, clip.y, clip.width, clip.height);
  20.  
  21.  }
  22.  
  23.  
  24. public Color getColor1() {return color1;}  
  25.  public void setColor1(Color color1) {this.color1 =  color1;}  
  26.   public Color getColor2() {return color2;}  
  27.  public void setColor2(Color color2){this.color2 = color2;}
  28.  
  29. }


Título: Re: Ayuda - Fondo degradado JPanel
Publicado por: Arobavx en 6 Noviembre 2010, 17:42 pm
Hola, me llamo la atencion tu post y puse a probar un poco, te falto un parametro para el constructor de  GradientPaint


Citar
g2.setPaint(new GradientPaint(0.0f, 0.0f, color1.darker(),getWidth(),getHeight(), color2.darker()));


Código
  1. import java.awt.*;
  2.  
  3. import javax.swing.*;
  4. public class NuevoJpanel extends JPanel{
  5. private Color color1 = new Color(255,255,255);
  6. private Color color2 = new Color(0,0,0);
  7.    protected void paintComponent(Graphics g){
  8.     Graphics2D g2 = (Graphics2D) g.create();
  9.           Rectangle clip = g2.getClipBounds();
  10.           float x=getWidth();
  11.           float y=getHeight();
  12.           g2.setPaint(new GradientPaint(0.0f, 0.0f, color1.darker(),getWidth(),getHeight(), color2.darker()));
  13.           g2.fillRect(clip.x, clip.y, clip.width, clip.height);
  14.  }
  15. public Color getColor1() {return color1;}
  16. public void setColor1(Color color1) {this.color1 =  color1;}
  17. public Color getColor2() {return color2;}
  18. public void setColor2(Color color2){this.color2 = color2;}
  19. public static void main(String[] args){
  20. JFrame ventana = new JFrame();
  21. NuevoJpanel panel = new NuevoJpanel();
  22. panel.setVisible(true);
  23. ventana.add(panel);
  24. ventana.setVisible(true);
  25.  
  26. }
  27. }
le agregue el main solo para probarlo  :rolleyes:
Funciona bien creo que es lo que necesitas
Saludos


Título: Re: Ayuda - Fondo degradado JPanel
Publicado por: Alexis Vargas Arteaga en 8 Noviembre 2010, 01:55 am
Gracias amigo me funcionó perfectamente!!!! ;-) ;-) ;-)