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…
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
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.