ai galera,
to começando a mexer com interface grafica e estou criando uma aplicação no netbeans no qual teria uma JTable. ela ja foi redimensionada toda direitinho, o problema eh que eu não estou conseguindo adicionar contatos nela.
alguem poderia me ajudar?
segue abaixo a classe na qual estou tentando adicionar
olá…
você está setando valores todos na mesma célula.
public void adicionarContato(Contato a){
JTable tabela = new JTable();
tabela.setValueAt(a, 1, 1);
listaContatosPF.add(a);
use o método addRow do DefaultTableModel passando um array de Object como parametro…
por exemplo… digamos que sua tabela tenha 2 colunas (Nome e Telefone)
é… tu deve fazer isso depois de criar a tabela…
e por que tu precisa daquele ArrayList?
C
cotonety
eu adiciono um contato nakele arraylist
nao eh assim?
intao no caso eu iria cadastrar na tabela eh isso?
erico_kl
se tu já está listando na tabela não precisa criar um ArrayList… se você precisar um depois pode percorrer a tabela num método separado e criar… mas acredito que não seja necessário…
C
cotonety
tudo bem, agora esta assim, poderia me dizer o pq do erro ainda?
erico_kl
essa tabela é uma JTable… não um Object
C
cotonety
isso, deu praticamente certo, ao menos os erros nao estao mais aparecendo…porem, nao esta aparecendo na jtable
ficou assim
public class Agenda{
e a logica do meu botão esta assim
soh falta aparecer na tabela e ai ja fica inhord
erico_kl
tu definiu as colunas da tua table?
C
cotonety
a partir do momento em que voce cria uma jtable e define quantas colunas voce ker usar, ele ja nao faz isso automaticamente?
se nao for ta ruim pq eu viajei
erico_kl
onde você definiu as colunas?
C
cotonety
eu axo que eu não defini
eu axei que ele automaticamente ja definiria entendeu?
a unica coisa que eu fiz foi arrastar a tabela e dpois nas propriedades trocar os nomes para, nome, endereço, etc.!
esse lance de colunas ai, o que eh necessario?na mesma classe aiq eu estou fazendo esse codigo eh isso?
erico_kl
tu pode passar as colunas/linhas no próprio constructor da classe DefaultTableModel
daí tu seta o model na tabela
C
cotonety
mais nao tem uma classe DefaultTableModel no meu, ou pelo menos eu acredito que não!
as unicas que tem são, agenda, contato, endereço, pessoa fisica, pessoa juridica e dois jframe Tela, JanelaPrincipal.
eu teria intao que criar uma classe DefaultTableModel e fazer um construtor que recebem as linhas eh isso?
kra to viajando!
erico_kl
DefaultTableModel dtm = new DefaultTableModel(new Object [][] {}, new String [] {"Coluna 1", "Coluna 2"})
table.setModel(dtm);
C
cotonety
kra, isso vai ser no botão ou no método?
pq esta assim agora
erico_kl
depois da criação da tabela
C
cotonety
e a tabela não ja esta criada?
veio, agora embaralhou tudo!!
poderia me explicar ?
erico_kl
tu cria a tabela e depois seta o model dela…
isso na hora de criar os componentes da tela né… tu não tem um método que faz isso? que cria a tela, os botoes, os painéis e tal?
C
cotonety
os metodos que eu tenho é de adicionar um contato, apenas esse…quais sao os metodos necessarios para que uma jtable funcione, se tratando apenas de adicionar linhas nela?
erico_kl
pelo que estou vendo tu não está utilizando MVC pro teu projeto, certo?
C
cotonety
eu tenhu uma classe Agenda que cuida dos métodos no pacote logica, e no pacote apresentação eu tenho as jframes de agenda, intao os eventos dos botões ficam todas nas jframes tal…não eh isso?
erico_kl
entao tu não precisa ter uma JTable dentro da tua camada lógica…
crie a JTable somente na view (ou apresentação)… na hora de chamar a tela tu preenche a tabela
C
cotonety
então fica no caso assim?
isso eh no evento do botão, esse botão , ao acionado ele ira cadastrar um contato na tabela:
erico_kl
não estou entendendo o motivo de tu ter uma JTable aí…
tu seta teu objeto e depois fecha a tela e então chama outra?
tu ta gravando esses dados em um banco?
C
cotonety
nao nao…eh o seguinte, saca soh:
eu tenho duas telas, uma principal que tem a tabela e um botão pra adicionar contato, e outra tela que surge quando eu aperto o botao de adicionar contato.
ai nessa outra tela tem pra colocar nome, endereço e depois apertar em cadastrar…o que eu quero? que quando eu aperto no botão de cadastrar ele consigo colocar na tabela os dados entendeu agora?
erico_kl
ah… blz…
tu pode criar um JFrame em tempo de execução ou criar uma classe que extenda JFrame e montar tua própria tela e então passar os dados via constructor de uma tela para a outra…
ou então botar os campos na mesma tela da tabela…
C
cotonety
nossa, se eu ja nao estava entendendo, agora intao…penou!
tipo, tu nao tem um exemplo no qual eu possa me situar?ou intao poderia passar pra vc por e-mail o trabalho pra q vc podesse entender melhor e assim tirar minhas duvidas.
isso se nao for atrapalhar eh claro!
erico_kl
cara… não tem mistério… sugiro pra ti botar os campos na mesma tela da tabela… vai facilitar pra ti
C
cotonety
eh…eu vou ver o q posso fazer, qualquer coisa tento falr ctg d novo…obg ai pela ajuda velho…até outro dia!
pedromuyala
Esse link com conteúdo sobre MVC e nesse momento sendo discutido uma implementação de Agenda (página 16) poderá ser encontrado aqui!
Tanto teoria quanto implementação! E um pouco de Camadas, Pattern Observer, MVP e Exception’s.
Espero ter ajudado!