E a ai pessoal tudo bem !!!
Estou com um probleminha e preciso de ajuda .
Eu criei uma tabela e inseri ela em um JScrollPane, com o objetivo de criar uma barra de rolagem vertical caso o numero de linhas seja maior que a janela do JScrollPane , ate ai tudo bem !! mas eu gostaria de saber como faço para tornar visivel determinada linha da tabela sem mover a barra de rolagem com o mouse. Por default a tabela é mostrada com a barra de rolagem na posição superior !! no meu caso preciso que ela seja inicializada na posição que eu especificar !!! Será que é possível ?
Uma abraço a todos !!!
Renato Ferrari
fragmento do codigo de criação da tabela .
final JTable table = new JTable(data, columnNames);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
Agradeço pela atenção , mas continuo com o problema .
O método tabela.changeSelection(int, int, boolean, boolean) , inicializa a tabela com determinada célula selecionada , mas não move o JScrollpane para a posição desta célula. O que eu preciso na verdade é um método para mover o JScrollPane sem usar o mouse .
Olha, eu fiz um teste aqui e criei uma tabela com 2 colunas e 500 linhas numa janela de 300x300… através do método JTable.changeSelection() funciona belezinha…
meu teste é baseado no seguinte: tenho a tabela ao centro em um JScrollPane e um botão num JPanel inferior… a janela aparece e quando clico nesse botão o handler chama o método changeSelection() com um número de linha aleatório (no intervalo de linhas existentes) funfa legal…
Sei que serei crucificado, mas eu realmente sinto que existe uma falta de coesão/coerência nos componentes Swing (não que outras linguagens tenham) mas – não sei explicar – sinto que falta muito ainda em termos de UI.
Um exemplo é o fato do JTable ter sido projetado para exibir colunas do mesmo tipo (mesma classe, mesmo renderer)…; isso é odiável…; sei que existem workarounds, entretanto, porém…