Personalizar botões

3 respostas
RenataFA

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:

3 Respostas

davidbuzatto

Olá

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

Exemplo:

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 ) );
        
    }
    
}

É 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!

porfirio

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…

D

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

Criado 26 de julho de 2007
Ultima resposta 27 de jul. de 2007
Respostas 3
Participantes 4