Botao em forma de circulo

Há como eu alterar a forma de um botao de um retangulo para um circulo…
ou coisa parecida?

Tambem gostaria de saber se tem como deichar uma imagem inteira no botao…

Mudar a forma do botão eu não sei se tem, mas tem uma propriedade no JButton onde vc tira as bordas se vc estiver usando uma imagem o botão terá o formato da imagem.

Só preciso lembrar qual é a propriedade ^^ vou olhar aqui e ja posto

A propriedade é ContentAreaFilled isso deixa o botão transparente deixando com o formato e tamanho da imagem

Hmm
mas e para eu colocar imagem no botao ?
eu coloco na proriedade icon ?
ja vi algo como colocar uma imagen no text field
mas n sei tbm se funciona
nem como fazer

Quando fiz uma aplicação Swing, criei um botão de ajuda e fiz assim para deixá-lo “redondo”:

seuBotao.setBorderPainted(false); seuBotao.setContentAreaFilled(false); seuBotao.setFocusPainted(false);

Abraços!

acho que o jbutton tem uma propriedade setIcon ;x

ajfilho
e ai vc colocou a imagem redonda com a interrogação no setIcon ???

Sim, a imagem era pequena e redonda, aí diminui bem o tamanho do JButton para quando eu aplicasse as propriedades citadas acima, parecesse que ele fosse redondo mesmo…

Abraços!

cara, para fazer isto eu usaria o graphics 2d…

é só criar uma classe extendida do JButton e sobrescrever o método paint(), dai dentro dele voce pode desenhar varias coisas, inclusive colocar imagens no fundo…

( Editado para correções de portugues… ainda são 8 e meia… hehehe )

Buenas

teste desabilitar as propriedades… e setar o icone…
é normal so aceitar .jpg ??

bom…
n ficou mto legal…

miguel…
como seria pra desenhar uma imagen ?
com o graphics 2d

Rapaiz, você já tentou trocar o Look and Feel do seu botão? Acho que você consegue fazer isso através do método setUI(ButtonUI ui).
Essa me parece ser a forma correta e mais elegante de resolver o seu problema…
[]'s.

tentei nao,
nem tenho ideia de como ficaria o codigo pra isso…
vo dar uma pesquisa…
mas qualquer ajuda em codigo é bem vinda
vlws

Boa tarde,

Bom eu tive que criar um botao redondo tambem e deu certo

import java.awt.event.*;
import java.awt.geom.*;
import java.awt.*;
import javax.swing.*;

public class JLeaf extends JComponent{
    Color color;
    Shape shape;
    boolean selected;
    
    @SuppressWarnings("empty-statement")
    public JLeaf(){
        super();
        this.setSize(80, 80);
        this.setLocation(0,0);
        shape = new Ellipse2D.Float(5F,5F, (float)(this.getSize().getWidth()-10),(float) (this.getSize().getHeight() - 10));
        color = new Color(0,0,0);      
    }
    
    protected void paintComponent(Graphics g){
        Graphics2D g2d = (Graphics2D) g.create();
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); //Suavisa a linha aplicando anti-aliasing
        g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON); //Suavisa texto aplicando anti-aliasing
        
        g2d.setStroke(new BasicStroke(5.0F)); //Define expessura da linha
        
        g2d.setColor(this.color); //Define cor
        g2d.draw(shape); //Desenha o contorno do shape, no caso uma circuferencia definida no construtor
        g2d.setColor(new Color(this.color.getRed(),this.color.getGreen(),this.color.getBlue(),100)); //Define cor novamente
        g2d.fill(shape); //Desenha o preenchimento do shape
        g.dispose();
        
    }
}

Bom, esse código nos da um component redondo. Basta adicionar listners e ele funcionará como um botão.

Alguem sabe me dizer se existe uma maneira elegante de definir o desenho quando o botão ta pressionado? ou quando o mouse está por cima dele?

Outra coisa a região do jComponet é um retangulo porem este botão é uma circuferencia. Quando adiciono mouse listners nele e chego na região do componet com o ponteiro porem fora da regiao da circuferencia o click nao deveria funcionar. Voces sabem me dizer se tem uma forma de defrinir esta area de ação?

Opa que interessante :stuck_out_tongue:
Cara, a questao do botao pressionado não faço idéia.
A área de click, teria que calcular qual é a área do meu círculo, pra calcular em que posição X,Y foi clicado e se esse X,Y ta dentro da minha área.