Eu fiz uma matriz auxiliar para pegar todos os dados de um JTable para depois poder manipulá-los, mas ele ta dando NullPointer eu acho que por que na matriz só inicializo o primeiro par de colchetes mas quando tento inicializar os dois o compilador estou indexOutOfBounds :?
levando em consideração ainda que eu sempre adiciono uma linha quando todas as linhas estão preenchidas quando a tabela perde o foco!
vou colocar o cod do evento aqui a baixo e a linha q ta dando o erro!
String[][]tabela=newString[2][];System.out.println(tabelaTeste.getRowCount());System.out.println(tabelaTeste.getColumnCount());System.out.println(tabelaTeste.getModel().getRowCount());System.out.println(tabelaTeste.getModel().getColumnCount());try{for(inti=0;i<tabelaTeste.getColumnCount();i++){// Preenche array para colocar no BDfor(intj=0;j<tabelaTeste.getRowCount();j++){tabela[i][j]=(String)tabelaTeste.getValueAt(i,j);// <-- Linha que estoura a NPE e a OutOfBounds}}}catch(NullPointerExceptionnpe){npe.printStackTrace();System.out.println("Erro");}StringcolNome="";StringcolLP="";StringcolProx="";try{for(inti=0;i<tabela[0].length;i++){// Alterandoif(rs.getNString(1).equalsIgnoreCase(tabela[0][i])){// Caminhando por colunas e pegando as linhs!colNome=tabela[1][i];// Quando achar usar [Todas linhas] [i] = nesse caso [3][i] alterando a segunda e terceiracolLP=tabela[2][i];colProx=tabela[0][i];gt.alteraDado("UPDATE Teste SET Nome = "+colNome+", Linguagem = "+colLP+", WHERE proximo = "+colProx);}}}catch(SQLExceptionex){Logger.getLogger(TesteFoco.class.getName()).log(Level.SEVERE,null,ex);}catch(NullPointerExceptionnpe){npe.printStackTrace();System.out.println("ERRO 2");}this.dispose();
for(int i = 0; i < tabelaTeste.getRowCount(); i++){ // Primeiro as linhas
for(int j = 0; j < tabelaTeste.getColumnCount(); j++){ //Depois as colunas
tabela[i][j] = (String) tabelaTeste.getValueAt(i, j);
}
}
Você não precisa perder tempo com o AbstractTableModel.
Todo o tempo que você já perdeu fazendo esse seu método já teria sido ganho.
E todo tempo que você vai perder daqui em diante também.
guisantogui
Sim, eu inverti o for propositalmente, pois queria apenas procurar nos dados da primeira coluna, não tendo que ir em todas as colunas da JTable, só tem como fazer pegando pelas linhas?
vlw pela ajuda!
ViniGodoy
Sim, é só fazer uma matriz unidimensional, e fixar o primeiro parâmetro:
Mas tem que lembrar que a ordem sempre é linha, coluna. Como na notação matemática.
guisantogui
Nunca usei uma “matriz unidimensional”!
tentei analisar o seu codigo, mas me perdi, poderia explicar de uma outra forma se não for pedir mto!
brigado pela força Vini
guisantogui
Funcionou sua ideia Vini valeu!
Vou ter que bolar algo agora para pegar os dados e jogar no BD, mas ta valendo!
guisantogui
Olha soh, mas agora eu fiquei com um array correto ao invés de uma matriz e tipo para mim pegar os dados referente as linhas corretas no array vai ser impossivel, pois todos os dados de uma tabela estão no array.
Tipo eu terei que fazer uma matriz para cada linha da tabela? :shock: