Java com café: jtable
Mostrando postagens com marcador jtable. Mostrar todas as postagens
Mostrando postagens com marcador jtable. Mostrar todas as postagens

JTable - Selecionar todo texto quando editar uma célula

Olá, hoje vou dar início a uma série de postagens rápidas. Normalmente quando abordo um assunto, sempre procuro introduzir os conceitos e explicar detalhadamente cada passo para realizar o procedimento. Mas como não estou tendo tempo pra fazer estas postagens mais elaboradas, resolvi mudar o estilo e tornar esse blog em algo parecido com um depósito de códigos. Assim mantenho o blog ativo e mantenho uma biblioteca com meus códigos pra quem quiser copiar (as vezes eu mesmo preciso de um código que fiz e não acho). 

Então vamos ao que interessa. 
Quando temos uma célula editável numa JTable e clicamos na mesma para fazer a edição, normalmente temos que selecionar e apagar o valor presente na célula para entrar com outro. Para melhorar isto e já selecionar todo conteúdo da célula quando ela entrar em edição, sobrescrevemos o método changeSelection da JTable conforme abaixo:

tbExemplo = new javax.swing.JTable()
{
    // Selecionar o conteúdo da célula quando editar
    public void changeSelection(int row, int column, boolean toggle, boolean extend)
    {
        super.changeSelection(row, column, toggle, extend);

        if (editCellAt(row, column))
        {
            Component editor = getEditorComponent();
            editor.requestFocusInWindow();

            if (editor instanceof JTextComponent){
                ((JTextComponent) editor).selectAll();          
            }
        }
    }
};

P.S.: Todos códigos foram testados por mim e são funcionais. Qualquer dúvida pergunte nos comentários.