- JTextPane como CellEditor em JTable executando AutoScroll Horizontal - Alguém me ajuda?

  • Pessoal , esta é minha primeira participação no forum, portanto se eu errar em algo, aceito conselhos de correção para meu crescimento junto a todos. Pois bem, vamos ao que interessa: Alguém saberia me informar como eu poderia fazer para que ao digitar um texto num JTextPane que é o meu editor de células ativo numa JTable , o mesmo, rolasse a conteúdo horizontalmente ??? Eu já consegui pesquisando conteúdos na net, fazer que o mesmo não quebre a linha de digitação quando o tamanho do texto ultrapassa a coluna direita da célula em edição da JTable. Abraços a todos e espero em breve poder contar com os profissionais da área que compartilham de seus conhecimentos com aqueles que como eu está em busca de reciclagem profissional na área.

  • Detalhe: não queria usar JTextPane como celleditor em JTable com JScrollPane, pois não sei se é possível.

  • Pessoal após pesquisar muitas linhas de códigos prontos e nada conseguir, tive que apelar para Jesus Cristo o Senhor, por um milagre quase impossível… rsrsrsrs… Se alguém, louco como eu estiver usando JTextPane como celleditor numa JTable para incrementar visualmente o negócio, aí segue uma pequena dica da solução que alcancei:
*
* Autor by: AutJon - 20101208  17:51
*
   // This method is called when a cell value is edited by the user.
   // Este método é chamado quando o conteúdo da célula é editado pelo usuário  
   
   public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int vColIndex ) {

   
       ((JTextPane)component).setText(value.toString() );


       // Aqui está o segredo do sucesso ...
       JViewport viewport = new JViewport();
       viewport.add( ((JTextPane)component)  );

       viewport.setOpaque(false);
       viewport.setBackground(null);

       viewport.addFocusListener( new FocusListener() {

            public void focusGained(FocusEvent e) {
              ((JTextPane)component).requestFocusInWindow() ;
            }

            public void focusLost(FocusEvent e) {
            }

        } ) ;

        return viewport; // Quem for usar seja feliz ...

    }