Tenho o seguinte problema:
Tenho um método para buscar inofrmações e transformar em string
no objeto esta armazenado o valor de código, descriçaõ e-mail e telefone:
publicObjectgetValueAt(Objectnode,intcolumn){// TODO Auto-generated method stub Objecttree=getFile(node);System.out.println("Valor de tree: "+tree);String[]stripedString=((String)tree).split(",");System.out.println("Valor stripedString: "+stripedString);try{switch(column){case0:returnstripedString[column];case1:returnstripedString[column];case2:returnstripedString[column];case3:returnstripedString[column];}}catch(SecurityExceptionse){}returnnull;}
olhando para o stackTrace, de uma olhada na linha
FileSystemModel.java:66, que eu chuto, deve ser esta aqui (chuto mais ou menos, pq eh o unico cast dentro desse metodo)
String[]stripedString=((String)tree).split(",");
ao inves de receber uma String, vc esta recebendo um Array de Objects…
verifique o metodo Object tree = getFile(node); para saber o que ele devolve…
Que por sua vez na Classe CriaTree recupera os filhos do
registro na base de dados que devem ser retornados para uma TreeTable:
publicCriaTree(Object[]parent)throwsSQLException{if(parent==null){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptione){System.err.print("ClassNotFoundException: ");System.err.print(e.getMessage());}try{con=DriverManager.getConnection(url,"user","password");//"user"stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);}catch(SQLExceptionex){msg=ex.getMessage();JOptionPane.showMessageDialog(null,msg,"Erro",JOptionPane.ERROR_MESSAGE);}uprs=stmt.executeQuery("SELECT * FROM Departamento");while(uprs.next()){cod=uprs.getString("COD_DEPTO");Stringdesc=uprs.getString("DESC_DEPTO");arrayPai.add(cod+","+desc+","+""+","+"");break;}this.parent=arrayPai.toArray();}else{while(uprs.next()){cod=uprs.getString("COD_DEPTO");arrayPai.add(cod);break;}this.parent=arrayPai.toArray();}}
[color=red]Mensagem do moderador: ao postar codigos utilize as tags [ code ] e [ /code ].[/color]
C
carlos.valentini
O problema esta sendo esse pegar o array de objetos e mostrar as informações tem ela.
C
carlos.valentini
O padrão passando public Object getValueAt(Object node, int column) é
definido pela propria classe pois ela herda classe TreeTableModel,
não existe uma forma de guardar um valor em um objeto tipo:
Objeto ob = “codigo 10”;
E depois recuperar este valor ?
T
takeshi10
eu nao consegui entender muito bem o que vc quer fazer, mas para pegar um objeto do array, faca assim:
Para o pai do reegistro na arvore funciona
mas para o filho não pois eu grvai no filho array[0] = “01,fundição,99814744,[email removido]”.
Por isso queria converter para String para recuperar o valor entre a “,”
E mostrar me tela.
fica assim
Codigo Descrição e-mail fone
“01”
|
|-> 01 Fundição 994455
|-> 02 Estoque 664545
Entende a minha dor de cabeça
T
takeshi10
entao faca
Stringmensagem=(String)array[column];
se voce tem certeza que o array contem Strings, caso contrario tera a ClassCastException de novo
Buscando o valor com o numero da coluna, só esta gerando este erro com indice do array
0
1
2
0
1
Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 2
o ArrayList cresce de acordo com a necessidade entao vc nao precisa se preocupar com isso
T
takeshi10
ok deixa eu explicar melhor (e depois de terminar de ler o post direito)
o count1 eh apenas um “atalho” para o objeto que vai estar em memoria…
nao eh necessario ter infinitos nomes diferentes, pois o mesmo nome pode ser “ligado” a objetos diferentes, por exemplo:
Accountacc=newAccount(...);//faz alguma coisa com o acountacc=newAccount(...);//agora perdi a referencia ao outro account, mas tenho um account novo
o exemplo acima eh bem bobo, mas acho que chegou o ponto em que vc deve comecar a ler um tutorial mais basico para vc entender o que sao classes e objetos (se eu nao me engano tem um aqui mesmo no guj)
Esta parte eu consegui resolver depois que postei a mensagem foi mais tranqui-lo que eu pensava.
O MAIOR PROBLEMA CONTINUA SENDO A RECUPERAÇÃO DOS VALORES
Eu gravo em um array o código do funcionario:
O problema e que o retorno vem no seguinte formato:
[Ljava.lang.String;@197d257
[Ljava.lang.String;@194df86
[Ljava.lang.String;@1ac04e8
E não o valor do codigo do funcionário que 01, 02, 03
Este é o problema