Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/03/2012, 09:43
Avatar de huspy
huspy
 
Fecha de Ingreso: diciembre-2008
Ubicación: Málaga, España
Mensajes: 120
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Sobreescribir el método paintComponent de JToggleButton

Buenas de nuevo!

Ya he encontrado la solución, pongo el código:

Código Java:
Ver original
  1. class MiBoton extends JToggleButton {
  2.         @Override
  3.         public void paintComponent(Graphics g) {
  4.             Graphics2D g2D = (Graphics2D) g.create();
  5.             g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  6.  
  7.             if (getModel().isSelected() || getModel().isRollover()) {
  8.                 RoundRectangle2D shape0 = new RoundRectangle2D.Double(0.5, 0.5, getWidth() - 1, getHeight() - 1, 2.0, 2.0);
  9.                 g2D.setPaint(new GradientPaint(new Point2D.Double(0.0, 0.0), new Color(255, 255, 255, 255),
  10.                         new Point2D.Double(0.0, 1.0), new Color(207, 231, 237, 255)));
  11.                 g2D.fill(shape0);
  12.             }
  13.            
  14.             super.paintComponent(g);
  15.         }
  16.     }

Tenía que poner la llamada al padre de paintComponent() después de pintar el fondo. Además para saber si está en estado rollover se hace desde el modelo del boton, getModel().isRollover().

Saludos!
__________________
"Lo escuché y lo olvidé, lo vi y lo entendí, lo hice y lo aprendí." (Confucio)