Galera,
Enviei um tópico parecido a um tempo, mas algumas outras dúvidas surgiram, por isso resolvi criar outro tópico.
Seguinte, possuo uma JTable, criada com um model a partir de um model que implementei.
Uma das colunas da tabela é composta por Cells que contem um CellEditor, que recebe um JTextField. Ou seja, uma das colunas é editável.
O problema é o seguinte:
Preciso selecionar todo o conteúdo da Cell quando esta é selecionada, ou com o clique do mouse (1 clique) ou quando recebe o foco (através do percurso da tabela com Tab, ou com seta do teclado). Se o faço no MouseListener do JTextField, consigo fazê-lo.
Mas se faço no FocusListener da JTable, nao consigo selecionar o conetudo do JTextField. Alguem saberia em que foco colocar??
Implementação no MouseListener do JTextField. ESTE FUNCIONA, O CONTEUDO É SELECIONADO:
textField.addFocusListener(new FocusListener(){
public void focusGained(FocusEvent arg0) {
int colunaSelecionada = table.getSelectedColumn();
int linhaSelecionada = table.getSelectedRow();
if (colunaSelecionada == 3){
DefaultCellEditor editor = (DefaultCellEditor)table.getColumnMode().getColumn(colunaSelecionada).getCellEditor();
String valorCell = (String)editor.getCellEditorValue();
TextEMax textField = (TextEMax)editor.getTableCellEditorComponent(table, valorCell, true, linhaSelecionada, colunaSelecionada);
textField.selectAll();
}
}
public void focusLost(FocusEvent arg0) {
// TODO Auto-generated method stub
}
});
Implementação no FocusListener da JTable. ESTE NÃO FUNCIONA, O CONTEUDO NÃO É SELECIONADO:
table.addFocusListener(new FocusListener(){
public void focusGained(FocusEvent event) {
int linhaSelecionada = table.getSelectedRow();
int colunaSelecionada = table.getSelectedColumn();
if (colunaSelecionada == 3){
DefaultCellEditor editor = (DefaultCellEditor)table.getColumnMode().getColumn(colunaSelecionada).getCellEditor();
String valorCell = (String)editor.getCellEditorValue();
TextEMax textField = (TextEMax)editor.getTableCellEditorComponent(table, valorCell, true, linhaSelecionada, colunaSelecionada);
textField.selectAll();
}
}
public void focusLost(FocusEvent arg0) {
// TODO Auto-generated method stub
}
});
Aguardo sugestões!!!
Obrigado, Guilherme