Como posso saber se um componente, no caso JTextField tem foco?
O meu problema é o seguinte:
Tenho uma tabela(JTable) com um renderer que implementa um toolTipText em todas as linhas
de uma certa coluna, até ai tudo bem. Quando executo e seleciono uma linha da minha tabela
aquela célula que tem o renderer no caso um JTextField dentro da célula não fica com o “fundo”
colorido, indicando assim que está selecionada.
Preciso saber como fazer o:
if textfield.TEMFOCO(true)
textfield.setBackground(FundoTextFieldColor);
else
textfield.setBackground(Color.white);
[code] class RendererTabela extends DefaultTableCellRenderer{
@Override
public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column )
{
final JTextField tf = new JTextField( value.toString() );
tf.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
//seta a cor "ativada"
tf.setBackground(FundoTextFieldColor);
}
public void focusLost(final FocusEvent e) {
//seta a cor "desativada"
tf.setBackground(Color.white);
}
});
tf.setOpaque( true );
tf.setForeground( Color.BLACK );
tf.setBorder(noFocusBorder);
tf.setToolTipText(value.toString());
return tf;
}
}
[/code]
Mesmo assim não funciona, é como se quando eu clicasse com o mouse em cima daquela célula ele selecionasse(desse foco) para o componente em baixo(Quando digo em baixo é porque esse renderer cria um textField dentro da célula da tabela e parece que ele não seleciona este componente e sim apenas a célula da tabela). Mas para eu poder dar a “ilusão” de seleção, preciso que mude a cor de fundo do textField que está por cima. Mais alguma idéia?
Não deu certo.
Acho que estou esquecendo de declarar alguma propriedade do JTextField, só pode.
Estranho que se eu clico duas vezes para alterar este campo ele altera normal, mas não consigo dizer que quando clico na linha
que ele se encontra ou na célula que ele se encontra é para ficar com fundo de selecionado ( tf.setBackground(FundoTextFieldColor); )
*FundoTextFieldColor é uma cor que criei, ja testei e ela funciona.
Agora… como posso dizer para trocar o fundo deste JTextField quando a linha dele está selecionada?