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.
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)…
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) …
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
: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)
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();
}
}