Como criar botões com figuras

Olá galera… tô com uma dúvida básica aqui no swing…
Eu queria criar botões personalizados, iguaizinhos esses do eclipse ( http://img521.imageshack.us/img521/8594/capbk6.jpg ) mas não tô conseguindo.
Meu interesse é nesse tipo de botão, onde a imagem fica estática e apenas um alto-relevo aparece por trás do botão.
Alguém pode me ajudar.

Fico muito grato.

Abraços!

Ola
É só por um icone e não por texto nenhum.
http://www.exampledepot.com/egs/javax.swing/button_SetIcon.html

Valeu galera… na verdade eu queria saber como mudava o estilo do “mouse over” … tipo, pra ficar igualzinho a esse estilo do netbeans q mostrei na foto…
pq da forma que vcs falaram o botão fica no estilo padrão do swing (azulado)…

mas obrigado pela ajuda… :wink:

Isso não é um botão e sim uma “toolbar”.

http://java.sun.com/docs/books/tutorial/uiswing/components/toolbar.html

bom pessoal… eu não estava satisfeito com o resultado de meus botões simplesmente pq eu estava usando o tipo de imagem errado…
colocando como jpg a imagem cobria totalmente o botão daí não se conseguia ver o “mouse over”, agora colocando como imagem .png e fundo transparente ficou bem legal…

mesmo assim ainda tenho curiosidade em saber como mudo o estilo do botão pra outro diferente do padrão do swing (esse estilo azulado) …

Abraços!

Olha , pelo que andei lendo , se n me engano… ao passar o mouse sobre o botao , vc gera um evento , ao pressiona-lo e tabem ao soltar , entao sao 3 eventos que vc teria de tratar, pra quando passar o mouse ele mostrar figura que voce desejar do jeito que vc quiser e quando clicar e soltar tb .
Eu acho que é isso rsrsrs mas se n for o pessoal vai corrigir :stuck_out_tongue:
:lol:

isso de eventos é vc adcionar um MouseListener
dai vai ter 3 metodos
mouseReleased(Desprecionado o.0)
mousePressed(Presionado)
mouseCliked(Clickando)
mouseEntered(quando entra na área de um instanceof JButtom)
mouseExited(quando sai da área)

dai vc pode adicionar eveno de imagen em cada

opa… valeu pessoal! :wink:

Crie o botão e na propriedade icon escolha a imagem, preferencia png ou gif

não é presizo usar eventos, basta ter diferentes icons para cada estado

e:

setIcon
setDisabledIcon
setRolloverIcon
setPressedIcon

No netbeans vç pode fazer isso nas propriedades do botão

Ah já agora no primeiro post vc queria dizer Netbeans …

Gente, falando em butões, eu estou tentando criar um botao personalizado.
O formato do meu botao é um circulo.
Meu problema é com a area de atuação do mouse. quero que seja somente a area do circulo e nao a de um quadrado que o circulo esta inserido

public class JLeaf extends JComponent{
    MouseListener j;
    boolean clk = false;
    boolean hhh = false;
    int posX = 0;
    int posY = 0;
    boolean drag = false;
    boolean focus = false;
    Shape circle = new Ellipse2D.Float(5F,5F, 70.0f, 70.0f);
    @SuppressWarnings("empty-statement")
    public JLeaf(){
        super();
        this.setSize(80, 80);
        this.setPreferredSize(new Dimension(80,80));
        this.setLocation(posX,posY);
        
        this.addMouseListener(new MouseListener(){

            public void mouseClicked(MouseEvent arg0) {
               
            }
            public void mousePressed(MouseEvent arg0) {
               
            }

            public void mouseReleased(MouseEvent arg0) {
               
            }

            public void mouseEntered(MouseEvent arg0) {
              
            }

            public void mouseExited(MouseEvent arg0) {
                

        });

        this.addMouseMotionListener(new MouseMotionListener(){

            public void mouseDragged(MouseEvent arg0) {
               
            }

            public void mouseMoved(MouseEvent arg0) {

            }

        });
    }
    
    protected void paintComponent(Graphics g){
              
        Graphics2D g2d = (Graphics2D) g.create();
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
        super.setBackground(new Color(255,255,255));
        
        if(clk){
            g2d.setStroke(new BasicStroke(5.0F));
        }
        else{
            g2d.setStroke(new BasicStroke(3.0F));
        }
            

            g2d.setColor(new Color(0,0,255));
            g2d.draw(circle);
            g2d.setColor(new Color(200,200,255));
            g2d.fill(circle);
       
        
        this.repaint();
        g.dispose();
    }
}