Utilizar Jpanel degradado con la clase Gradiente
Publicado por edisoncor en Octubre 4, 2007
Ahora podemos modificar la clase JPanelgradient
y poder utilizarla con la clase gradiente
import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JPanel; /** * * @author Edisoncor */ public class JPanelGradient extends JPanel{ private Gradiente gradiente; public JPanelGradient() { } @Override protected void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g.create(); Rectangle clip = g2.getClipBounds(); if (gradiente!=null) g2.setPaint(gradiente.getGradiente()); g2.fillRect(clip.x, clip.y, clip.width, clip.height); } public Gradiente getGradiente() { return gradiente; } public void setGradiente(Gradiente gradiente) { gradiente.setComponente(this); this.gradiente = gradiente; } }
luego podemos realizar lo siguiente para utilizar este panel
/** * * @author Edisoncor */ public class NewJFrame extends JFrame {
private Gradiente gradiente3; private JEPanelGradient jEPanelGradient1; public NewJFrame() { initComponents(); } private void initComponents() { gradiente3 = new Gradiente(); jEPanelGradient1 = new JPanelGradient(); gradiente3.setATipo(Gradiente.LINEAR_VERTICAL); gradiente3.setColor1(new java.awt.Color(204, 204, 255)); gradiente3.setColor2(new java.awt.Color(0, 51, 51)); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jEPanelGradient1.setLayout(new java.awt.BorderLayout()); jEPanelGradient1.setGradiente(gradiente3); getContentPane().add(jEPanelGradient1, java.awt.BorderLayout.CENTER); pack(); } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new NewJFrame().setVisible(true); } }); } }
y el resultado es

