Mas não imagino como fazê-lo, sem usar bitmaps para o texto, pois o label do botão deverá se modificar dinamicamente.
Não consigo usar um JButton com imagem de fundo e texto por cima desta imagem (creio que isso seja impossível). Também nao consigo mudar o background do botão e a cor do texto no estado Rollover deste botão.
Pergunto se alguém pode me ajudar, pois sou iniciante em Java.
Muito obrigado
feliz 2007 a todos
Você pode setar dinamicamente o fundo e a cor de um JButton dinamicamente, mas criar um gradiente (que não seja aquele gradiente chocho do Metal) já são outros quinhentos.
Para você pôr uma figura no fundo do JButton (em vez de pô-la ao lado) é necessário você derivar uma classe de JButton e sobrepôr paintComponent. Isso é meio chato (basta ver o fonte original de JButton).
Aham, se você limpar completamente o texto do JButton, e deixar as margens em 0,0,0,0, e atribuir corretamente os “icons” do JButton (existe para vários estados do botão) até dá para fazer só com “icons”. Acho que existe “icon”, “selectedIcon”, “disabledIcon”, etc. É bom ver a documentação.
Se voce é iniciante, vai ficar um pouco complicado… mas vou explicar…
Crie uma sub-classe de button, com um booleano under
Adicione um mouse listener a ela
[code] this.addMouseListener( new MouseListener() {
public void mouseEntered(java.awt.event.MouseEvent arg0) {
under = true;
repaint();
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
under = false;
repaint();
};
});[/code]
ate aqui, voce sabe qdo o mouse ta em cima do botao ou nao…
agora o mais dificil é sobreescrever o metodo paint…
vou dar um exemplo que eu fiz…
[code] public void paint(Graphics g) {
if (under)
g.setColor(Color.GRAY);
if (isSelected())
g.setColor(Color.LIGHT_GRAY);
if (!under && !isSelected())
g.setColor(Color.WHITE);
Muito obrigado, thingol e felipecruz! Estou conseguindo graças a ajuda de vocês. Ainda falta muita unhada para o meu menu ficar pronto, mas quando eu terminar, eu posto o fonte aqui, ok?
[]