Personalizar botões

Olá!

Gostaria de dicas sobre como personalizar botões no swing.

Quero fazer aqueles botões, de diversos formatos, etc, etc…

Alguém tem algum link, artigo, alguma recomendação?!

grata :lol:

Olá

Renata, é só sobrescrever o método paintComponent, não invocando a versão da super classe.

Exemplo:

[code]
import java.awt.;
import java.awt.geom.
;
import javax.swing.*;

/**
*

  • @author David
    */
    public class MeuBotao extends JButton {

    public MeuBotao() {
    // remove a borda
    setBorder( null );
    }

    protected void paintComponent( Graphics g ) {

     // não invoque super.paintComponent( g )
     
     // obtém o Graphics2D
     Graphics2D g2d = ( Graphics2D ) g;
     
     // faz os desenhos desejados...
     g2d.draw( new Ellipse2D.Double( 2, 2, 10, 10 ) );
    

    }

}[/code]

É claro que esse exemplo precisa ser melhorado, faltam vários detalhes, como por exemplo quando o mouse está sobre o componente, mas o caminho é este.

Tem como você fazer a mesma coisa de outras formas, por exemplo usando o método getGraphics e JComponent… Dá uma olhada na API.

Até mais!

Você também pode ter um icon para cada estado

setIcon
setPressedIcon
etc…

Com isso pode rapida e facilmente criar uns botões fixes, sem mexer no paint(…)

Melhor ainda se você for bom em desenho, pode criar uns botões bonitos no Gimp, Inkscape, Photoshop e etc…

Voce tambem pode modificar criando seu proprio Look And Feel para seu botao e para outros componentes seu

A Revista Java Magazine saiu um artigo sobre isso se eu achar o link posto aqui