Como ter o tooltiptext em todas as células de uma JTable? [RESOLVIDO]

Boa tarde,

Estou com seguinte problema:

Tenho uma JTable que pega valores de um banco de dados, este JTable tem N linha e 9 colunas.
Uso NetBeans 6.5 e vi algo como Renderer, acredito que possa ajudar na minha dúvida, mas não sei NADA sobre renderizadores e tals.

Gostaria de saber como fazer aparecer tooltiptext em todas as células da JTable, cada tooltip pegando o valor da sua célula, e como
fazer tooltiptext por exemplo de todas as linhas de certas colunas.
Pois como citado acima tenho uma JTable de N linhas e 9 colunas e tem duas colunas que tem valores muito grandes(Strings grandes)
não cabendo assim na tela(no tamanho de largura que especifiquei para a coluna).

Como poderia resolver este problema? Por acaso existe alguma forma “Fácil” através do NetBeans?

com o render voce poderá fazer isto… ele retorna um componente, e neste voce colocaria o tooltip de acordo como voce queria…

dentro do método getTableCellRendererComponent, terá os parametros de linhas e colunas, e por eles voce podera definir onde aparecera ou não os tooltips…

vlw

Você poderia me ajudar com este tal de RENDERER ou saberia onde posso aprender sobre este?

eu sempre crio uma classe extendida de um jTable, dai dentro dela eu crio uma classe interna extendida do DefaultTableCellRenderer, dai voce tera que implementar dentro dela o metodo getTableCellRendererComponent, que será o método que voce adicionara os toolTips no componente, dai para adicionar o renderer na tabela voce pode fazer assim dentro do contrutor da tabela:

getColumnModel().getColumn( numeroDaColunaDesejada ).setCellRenderer( new RendererCriado() );

Exemplo, voce poderia criar o renderer dentro da sua tabela assim:

class RendererOfTable extends DefaultTableCellRenderer
    {
        @Override
        public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column )
        {
            JTextField tf = new JTextField( value.toString() );
            tf.setOpaque( true );
            tf.setForeground( Color.BLACK );
            
            tf.setToolTipText( value.toString() );
            
            return tf;
        }
    }

O problema é que a JTable é criada pelo NetBeans, onde que eu colocaria então este código?

Voce poderia criar aquela classe do renderer, dai adicionar na tabela assim:

jTableCriado.getColumnModel().getColumn( numeroDaColunaDesejada ).setCellRenderer(  new RendererCriado()  );

isto dentro do contrutor da classe que voce esta usando o jTable…

entendeu?

Vou testar miguel, logo que eu tiver uma resposta de aviso se entendi certo.

Obrigadão mesmo.

Funciounou perfeitamente :wink: