Trocar a seta no JComboBox ou Tabela UIDefaults

2 respostas
wID

Há alguma maneira para trocar a seta do JComboBox, coloquei o background com uma cor escuro e a cor da seta mistura,

Tentei customizar a tabela UIDefaults no MetalLookAndFeel, mas não sei qual é o nome da chave ou se ela existe para customizá-la.

Abaixo o código que aguarda a chave referente a seta JComboBox:
@Override
    protected void initComponentDefaults(UIDefaults table) {
        super.initComponentDefaults(table);

        Object[] defaults = {
            "Button.border", BorderFactory.createLineBorder(new Color(255, 2, 9), 1),
         //   "CHAVE",  VALOR
},

Alguém sabe onde posso encontrar uma tabela com todas as chaves?
Procurei no código fonte do JDK, não encontrei, mas sei que está definido em algum lugar.
Alguém sabe onde fica estas definições no JDK?

Esta é para mestres!
Desde já, obrigado mestres!

2 Respostas

brlima

http://forums.sun.com/thread.jspa?threadID=623704&messageID=3577032

protected JButton createArrowButton()
			{
				return new MyBasicArrowButton(BasicArrowButton.SOUTH,
					UIManager.getColor("ComboBox.buttonBackground"),
					UIManager.getColor("ComboBox.buttonShadow"),
					UIManager.getColor("ComboBox.buttonDarkShadow"),
					UIManager.getColor("ComboBox.buttonHighlight"));
			}
class MyBasicArrowButton extends BasicArrowButton
{
	public MyBasicArrowButton(int direction)
	{
		super(direction);
	}
	
	public MyBasicArrowButton(int direction, Color background, Color shadow, Color darkShadow, Color highlight)
	{
		super(direction, background, shadow, darkShadow, highlight);
		setBackground(Color.black);
	}
	
	public void paintTriangle(Graphics g, int x, int y, int size, int direction, boolean isEnabled)
	{
		Color oldColor = g.getColor();
		int mid, i, j;
		j=0;
		size = Math.max(size, 2);
		mid = (size/2) - 1;
		g.translate(x, y);
		g.setColor(Color.green);
		j = 0;
		for(i = size-1; i >= 0; i--)
		{
			g.drawLine(mid-i, j, mid+i, j);
			j++;
		}
		g.translate(-x, -y);
		g.setColor(oldColor);
	}
}

Abraços!

wID

Muito obrigado!

Vou fazer uns testes e posto o resultado depois.

Para informação de quem estiver precisando:
Quanto a tabela de chaves do UI encontrei no BasicLookAndFeel.java dentro do fonte do JDK.
E não existe chave para mudara cor ou o ícone do botão do ComboBox, o JComboBox é um conjunto de
JList com JButton, e são montados pela Classe UI do ComboBox.
Então para mudar, só mesmo utilizando algo como o que foi postado pelo brlima, logo acima.

Até mais…

Criado 9 de setembro de 2008
Ultima resposta 10 de set. de 2008
Respostas 2
Participantes 2