Pessoal, alguem sabe como faço um metodo que recebe uma String(ou melhor se possivel, um ArrayList) e retorna uma String[][] ???
pq criei uma Jtable na minha gui e como um dos construtores que ela aceita é String[][] e String[];
onde o String[][] vai ser uma lista de email…
mas minha função getEmail é do tipo ArrayList getEmail()…
outra duvida… tenho 2 telas no meu programa…no caso 2 JPanel…
na primeira tela tem um JTextField onde o conteudo deste JTextField devera ser passado para a tela 2…
mas se na tela 2 eu crio o contrutor da tela 1, ele reabre minha tela 1…
Entao como faço para recueprar esse valor???
Eu não recomendo usar nenhum dos dois construtores de JTable. Em vez disso, crie um TableModel que aceite internamente os dados do jeito que você quer.
Se sua tabela tiver apenas uma coluna, o TableModel pode se basear em um ArrayList < String > tranquilamente. Mas provavelmente você tem mais colunas.
diego2005
Mas o que exatamente você quer retornar em uma String[][]???
R
RaphaelSantos
assim, quero, a principio uma unica coluna…uma linha inicial com o titulo(que acho que isso é criado no segundo parametro que sao as linhas, nao??? caso nao seja como tou titulo a coluna ou colunas???
eu tenho um metodo que coloca numa função todos os emails(que o programa calcula)… logo eu posso ter 1 ou 100 emails em cada posição da lista…eu quero passar a lista pro JTable e ele colocar um abaixo do outro os emails.
como faço isso? eu criei o JTableModel mas ao tentar passar o ArrayList junto com String[] (este aqui seria o nome/titulo da primeira coluna)…
T
thingol
Um exemplo de TableModel:
importjava.util.List;importjavax.swing.event.TableModelListener;importjavax.swing.table.TableModel;/** * Isto para o caso bobo em que a tabela tem apenas uma coluna * e os dados estão em um ArrayList<String> */publicclassExemploTableModelimplementsTableModel{privateStringnomeColuna;privateList<String>dados;publicExemploTableModel(StringnomeColuna,List<String>dados){this.nomeColuna=nomeColuna;this.dados=dados;}publicvoidaddTableModelListener(TableModelListenerl){}publicClass<?>getColumnClass(intcolumnIndex){returnString.class;}publicintgetColumnCount(){return1;}publicStringgetColumnName(intcolumnIndex){returnnomeColuna;}publicintgetRowCount(){returndados.size();}publicObjectgetValueAt(introwIndex,intcolumnIndex){returndados.get(rowIndex);}publicbooleanisCellEditable(introwIndex,intcolumnIndex){returnfalse;}publicvoidremoveTableModelListener(TableModelListenerl){}publicvoidsetValueAt(ObjectaValue,introwIndex,intcolumnIndex){if(rowIndex>=dados.size()){while(dados.size()<rowIndex){dados.add("");}dados.add((String)aValue);}else{dados.set(rowIndex,aValue);}}}
R
RaphaelSantos
obrigado thingol…vou fazer o teste…
e qtominha segunda duvida, vc saberia responder???
T
thingol
Crie uma classe no seu programa que sirva para transferir dados de uma tela para outra. (Seria uma classe bastante simples, só com dados - não tem JTextFields, nada desse tipo, só Strings, ints e outras coisas que são só dados.)
Quando fechar a primeira tela, copie os dados para um objeto dessa classe, para poder recuperá-los na segunda tela.
R
RaphaelSantos
thingol:
Crie uma classe no seu programa que sirva para transferir dados de uma tela para outra. (Seria uma classe bastante simples, só com dados - não tem JTextFields, nada desse tipo, só Strings, ints e outras coisas que são só dados.)
Quando fechar a primeira tela, copie os dados para um objeto dessa classe, para poder recuperá-los na segunda tela.
o problema é esse thingol, como eu disse acima, meu construtor da primeira classe inicializa o Panel… pra eu criar esse metodo que retorna esses valores, vou ter que instanciar meu objeto, e qdo eu fizer isso o panel será chamado em cima da Tela2…
ai nao sei como fazer… alguem help-me???
L
LeonardoCComp
Opa!
Então Raphael, eu ainda não entendi a sua situação :oops:,
mas eu tive que transformar um Cliente[] em um String[][],
para usar o JTable, vou postar a forma que fiz, talvez te ajude.