Bom to montado uma tela aki…
Ai eu seto na table alguns serviços prestados, ai qdo acaba os serviços tem um button q serve pra grava
esses dados no banco,…
mas como eu faço pra recuperar esses dados da table?
Se alguem puder ajudar ai valeu =]
Bom to montado uma tela aki…
Ai eu seto na table alguns serviços prestados, ai qdo acaba os serviços tem um button q serve pra grava
esses dados no banco,…
mas como eu faço pra recuperar esses dados da table?
Se alguem puder ajudar ai valeu =]
aqui tem um exemplo de como usar =D
esse é o método do meu exemplopublic Set getContasCorrentes() {
Set ccs = new HashSet();
for(ContaCorrente cc : contas) ccs.add(cc);
return ccs;
}
public Set getContasCorrentes() {
return new LinkedHashSet<ContasCorrentes>(contas);
}
Nossa cara ta mo bolo akele topico kkkk…
N consegui axar nd…
Me direciona ai por favor.
é o meu último post
pelo link se vc esperar carregar até o final cai direto nele
tem um model q eu criei… da pra melhorar um bocado ele, mas ajuda a entender
Bom axo q o q eu preciso é isso neh…
Tipo o q eu kero é so saber q comando q uso pra poder pegar os dados da table…
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex) {
case 0:
return contas.get(rowIndex).getBanco().getCod_banco();
case 1:
return contas.get(rowIndex).getNum_agencia();
case 2:
return contas.get(rowIndex).getNum_conta_corrente();
case 3:
return contas.get(rowIndex).getNme_titular();
default:
return null;
}
}
Com o q q vc tá trabalhando no teu banco? jdbc direto ou com hibernate ou algo do gênero?
Se vc quiser tirar os dados célula a célula daí então é só fazer
Object dado = tabela.getValueAt(linha,coluna);
Era isso q eu keria =P…
Tipo deu uma zica da porra aki…
Exception de Memoria… o pc n ta nem conseguindo abrir a tela kkk
mas to fazendo com Drivezin de Sql.
É mais tranquilo vc fazer um TableModel e trabalhar em cima dele… nem q seja um objeto estilo ObjetoLinhaDaTable que contém todas as colunas…
Eu acho mais prático do q vc ficar pegando cada célula individualmente e tratando o objeto
tenta assim
// prenche fields com dados da tabela
private void preencherFields() {
jtpDestinatarios.setSelectedIndex(1);
jtfCodigo.setEditable(false);
//jtbDestinatarios.getRowSorter().toggleSortOrder(int numeroColuna);
if (jtbDestinatarios.getSelectedRow() != -1) {
int linhaSelecionada = jtbDestinatarios.getSelectedRow();
jtfCodigo.setText((String) String.valueOf(tabelaModelo.getValueAt(linhaSelecionada, 0)));
jtfDestinatario.setText((String) tabelaModelo.getValueAt(linhaSelecionada, 1));
jtfAC.setText((String) tabelaModelo.getValueAt(linhaSelecionada, 2));
jtfEndereco.setText((String) tabelaModelo.getValueAt(linhaSelecionada, 3));
jtfComplemento.setText((String) tabelaModelo.getValueAt(linhaSelecionada, 4));
jftfCep.setText((String) tabelaModelo.getValueAt(linhaSelecionada, 5));
jtfCidade.setText((String) tabelaModelo.getValueAt(linhaSelecionada, 6));
jtfUF.setText((String) tabelaModelo.getValueAt(linhaSelecionada, 7));
}
}
Nossa q brisa meu programa deu uma doidera aki
[code]
List
NotaDAO dao = new NotaDAO();
list = dao.TrazerNomes();
[code]
Mas Gobain Tem como eu joga tudo as linha num model e ja jogar direto pro banco?
interessante Robson vo tenta usa ele
Nossa q brisa meu programa deu uma doidera akiList<NotaFiscal> list = new ArrayList<NotaFiscal>(); NotaDAO dao = new NotaDAO(); list = dao.TrazerNomes();Mas Gobain Tem como eu joga tudo as linha num model e ja jogar direto pro banco?
Então, com isso vc pode fazer assim depois que carregar do banco
((TeuModel)tuaTabela.getModel()).setNotasFiscais(list);
Com isso vc preenche os dados de acordo com o q vc definir lá no método setValueAt do TableModel.
Depois para vc carregar da tabela td pronto pra jogar no BD vc vai fazer algo como
list = ((TeuModel)tuaTabela.getModel()).getNotasFiscais();
dao.salvarListaDeNotas(list);
intaum eu useei ele pra preecher meus fields com as info da tebela
se viu ali neh q pego o valor da linha e seto no JTextField…
blz qualquer coisa da um tok ok
Abraço
Mano q zica nunca alguma coisa funciona e para assim de uma hora pra otra…
public List<NotaFiscal> TrazerNomes() throws SQLException {
List<NotaFiscal> list = new ArrayList<NotaFiscal>();
String sql = "Select Nm_Empresa_Cliente From Cliente";
PreparedStatement ps = c.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()){
NotaFiscal nota = new NotaFiscal();
nota.setNm_Cliente(rs.getString("Nm_Empresa_cliente"));
list.add(nota);
System.out.println(nota);
}
return list;
}
o Outro metodo
public void test(String Nome) throws SQLException{
Connection c = ConnectionFactory.CriarConexao();
String sql = "Select 1 from Cliente where Nm_Empresa_Cliente = ?";
PreparedStatement ps = c.prepareStatement(sql);
ps.setString(1, Nome);
ResultSet rs = ps.executeQuery();
if (rs.next()){
NotaFiscal nota = new NotaFiscal();
nota.setEnd_Cliente(rs.getString("End_Cliente"));
}
rs.close();
ps.close();
}
Ai da esse erro vc imagina q barato q é esse to de cabeça kente agora de pensa o dia todo fazendo umas parada…
se souber blz se n amanha eu penso com mais calma
Essa Exception
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
Esse erro na verdade é q vc tá estourando a memória da tua vm… aumenta um pouco pra trabalhar, ou veja onde q está com problemas e não está liberando a memória depois de usar…
Onde eu aumento.;…?
Me diz uma coisa vc ta limpando da memoria sua aplicacao tipow um dispose…
SuaTela.this.dispose();
da uma olhada ai pq tua VM ta com a memoria cheia ok
Abraço
Nossa akele package com akelas classes ja eram…
Hoje eu dei uma arruma em tudo bom q fico mais enxuto…
Bom voltando…
Robson por akele seu codigo que ta mais de entende …
Pra pegar o texto de uma celula é assim?
Nomedatable.getvalue(Aki eu num lembro o q poe, a linha que ker, coluna q ker) é isso?
Nossa akele package com akelas classes ja eram…
Pra pegar o texto de uma celula é assim?
Nomedatable.getvalue(Aki eu num lembro o q poe, a linha que ker, coluna q ker)é isso?
Bom dia Colored
justamente
(tabelaModelo.getValueAt(linhaSelecionada, 0)));
tabelaModelo == nome da tabela
linhaSelecionada == int linhaSelecionada = jtbDestinatarios.getSelectedRow(); pega linha selecionada no meu caso eu usei isso qndo o user clica em cima da celula…
e o 0 == a coluna selecionada…
no meu caso eu setei isso em um JTextField
T+ Abraço
Bomdia =]
No caso vc faria um eskema assim…
int selectedLine = table.getSelectedRow();
tx1.setText(String.valueOf(table.getValueAt(selectedLine, 0)));
Agora no meu caso como eu kero jogar tudo q tem na table pro banco…
Eu vo te q pegar o tanto de linha neh da table…
e fazer um for pra ir add neh?
To perdidao =D
[quote=colored]Bomdia =]
int selectedLine = table.getSelectedRow();
tx1.setText(String.valueOf(table.getValueAt(selectedLine, 0)));
ta e me diz uma coisa os dados q esta listando na tabela, vc ta tirando daonde ???
o usuario q digita isso ??? ou vc faz uma consulta de algum lugar por ex: BD para preeche-la ???
Tipo assim e como se fosse assim:
Tem uma combo com varios nomes de empresas cadastradas. entao eu fiz um select ali estao setadas na combo.
Ai qdo eu escolho uma ele executa outra query q preenche campos cadastrais,
Ai tem alguns campos pra digitar que, trabalho o funcionario fez ex: Instalação Redes Linux…
Um botao q adiciona isso na table, entao nela tem varios serviços q empresa pediu e foram prestados…
Em baixo da table tem um botao para poder gravar esse dados no banco…
Entedeu =]
Hammm entendi
ta e vc tem um Bean q representa tds esse atributos ai neh tipow “empresasCadastradas”
bom axo q da pra vc fazer o seguinte instancia um objeto do tipow desse bean ai e fais um
empresasCadastradas eC = new empresasCadastradas();
eC.setCodigoEmpresa(String.valueOf(SuaTable.getValueAt(selectedLine, 0)));
dai vc fais um laço pra preencher os Atributos do seu bean com os dados da Jtable depois vc manda grava seu bean… so q axo q vc tera q fazer um ArrayList desse seu bean se vc tiver mais de um empresa listada na tabela…
manja…
pensei assim ja funfo agora eu preciso de um for que navegue por toda table…
Aki ta add apenas 1 celula no banco mas primeiro vo axa o eskema dps eu ajeito tudo…
int sizecolumn = table.getColumnCount();
if(sizerow == -1){
JOptionPane.showMessageDialog(null, "Tabela Vazia");
}
NotaFiscal nota = new NotaFiscal();
NotaDAO dao = new NotaDAO();
nota.setNm_Cliente(String.valueOf(table.getValueAt(sizerow -1, 1)));
dao.PegardaTable(nota);
System.out.println("OK");
Tipo mais ou menos pensei assim
for(int i = 0; i < sizerow - 1; i++){
for(int j = 0; j < sizecolumn -1;j++){
nota.setNm_Cliente(String.valueOf(table.getValueAt(j, i)));
dao.PegardaTable(nota);
}
}
Mas na moral essa vez eu preciso mesmo de ajuda eu n consigo entender 2 for juntos…
kkk… tenho mo dificuldade com isso
esse teu
nota.setNm_Cliente(String.valueOf(table.getValueAt(sizerow -1, 1)));
dao.PegardaTable(nota);
te retorna os atributos da Nota q vc selecionou na tabela ???
pq vc nao fais um ArrayList do q retorna tipo assim
arlTabela = dao.PegardaTable(nota);
e varre este array pra pega o q vc quer assim
for (int i = 0; i < arlTabela.size(); i++) {
nota assoArl = (nota) arlTabela.get(i);
Vector linha = new Vector();
linha.add(assoT.getCodNota());
tabelaModelo.addRow(linha);
teh de tarde
Nossa mano sei la… consigui nao kkk…
vamos por partes…
A minha ideia era No NotaDAO eu criei esse metodo.
public void PegardaTable(NotaFiscal nota) {
try{
String sql = "Insert into NotaFiscal (Nm_Cliente)values (?)";
PreparedStatement ps = c.prepareStatement(sql);
ps.setString(1, nota.getNm_Cliente());
ps.execute();
ps.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
que so iria apenas ajeitar o insert
Ai eu iria fazer um outro agora para mostrasse o q akele metodo deveria inserir certo =]…
para eu jogar tudo akilo numa arraylist eu teria q fazer um For
mas eu n consigo add assim tem alguma ideia melhor?
arlTabela.add(nota.setNm_Cliente(String.valueOf(table.getValueAt(i, 0)));
ha usa um Vector mesmo… so sugeri o Array pq um colega ai
me disse q era pra usar ArraList tenta com Vector ai pra ve se da
tipo depois eh mais sussa pra pega dele e passa pro teu dao
Eu fiz assim mas sei la o q q pega
for(int i = 0; i < sizerow - 1; i++){
nota.setId_Nota(Long.parseLong(tx1.getText()));
nota.setId_Cliente(Long.parseLong(String.valueOf(table.getValueAt(i, 0))));
nota.setNm_Cliente(String.valueOf(table.getValueAt(i, 1)));
nota.setEnd_Cliente(String.valueOf(table.getValueAt(i, 2)));
nota.setNr_Cliente(String.valueOf(table.getValueAt(i, 3)));
nota.setTel_Cliente(String.valueOf(table.getValueAt(i, 4)));
nota.setDs_servico(String.valueOf(table.getValueAt(i, 5)));
nota.setTot_horas(String.valueOf(table.getValueAt(i, 6)));
nota.setValor_servico(Double.parseDouble(String.valueOf(table.getValueAt(i, 7))));
arraylist.add(nota);
dao.PegardaTable((NotaFiscal) arraylist.get(i));
System.out.println("ok");
}
Pra 2 campos tava funfando agora pra todos n… pior q nem erro da… vo te q fazer um por um
AE CONSEGUI o///
Valeu Robson Ajudo D+
Falow
Valeu colored precisar estamos ai… se ajudamos hehehhehehhehehe
Abraço
AE CONSEGUI o///Valeu Robson Ajudo D+
Falow
Boa Tarde colored , td blz colega, agora eu preciso da sua ajuda …
meio q copie sua logica pra resolver um problema nosso aki.
A parada é a seguinte fiz um laço pra varrer minha tabela e setar os valores no meu bean, para grava-lo posteriomente, assim:
//Varre a jtabela Empregos Anteriores e passa parao bean
//Aba Expregos Anteriores
int linhasTab = tabelaModeloEmpAnteriores.getColumnCount();
for (int i = 0; i < linhasTab-1; i++) {
incrementaCodEmpAnt();
empAnt.setCodEmpAnteriores(codExp);
empAnt.setEmpregado_codEmpregado(new Integer(jtfCodEmpregado.getText()));
empAnt.setEmpresaEmpA(String.valueOf(tabelaModeloEmpAnteriores.getValueAt(i, 0)));
empAnt.setEnderecoEmpA(String.valueOf(tabelaModeloEmpAnteriores.getValueAt(i, 1)));
empAnt.setFoneEmpA(String.valueOf(tabelaModeloEmpAnteriores.getValueAt(i, 2)));
empAnt.setFalarComEmpA(String.valueOf(tabelaModeloEmpAnteriores.getValueAt(i, 3)));
empAnt.setDataAdmEmpA(String.valueOf(tabelaModeloEmpAnteriores.getValueAt(i, 4)));
empAnt.setDataDemissaoEmpA(String.valueOf(tabelaModeloEmpAnteriores.getValueAt(i, 5)));
empAnt.setMotivoSaidaEmpA(String.valueOf(tabelaModeloEmpAnteriores.getValueAt(i, 6)));
empAnt.setUltimoSalarioEmpA(String.valueOf(tabelaModeloEmpAnteriores.getValueAt(i, 7)));
//Chama a instancia do DAO e passa pra ele os dados cadastrais atraves do bean instanciado
daoG.salvar(empAnt);
}
Ta so q a zika é a seguinte, ta gravando td certinho no BD so q ta retornando a seguinte exception
Exception occurred during event dispatching:
java.lang.ArrayIndexOutOfBoundsException: 2 >= 2
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:632)
Ai Debuguei essa rotina e vi onde ta a zika.
O
int linhasTab = tabelaModeloEmpAnteriores.getColumnCount();
me retorna o int “8” que consequentemente é o numero de colunas da minha tabela, intaum so q o getValue começa em 0 certo!!! eu tentei coloca um -1 no linhasTab asssim:
for (int i = 0; i < linhasTab-1; i++)
mais mesmo asssim nao da … se sabe se aconteceu o mesmo com vc e como vc faz pra resolver
Ate + Abraço
Pq vc não tenta implementar um TableModel ao invés de usar o Default e ter q varrer toda a tabela pra tratar seus dados?
Vc teria 1/6 do trabalho, e agiliza tb na hr de trabalhar com o BD. Comentei isso lá no começo do tópico… vale dar uma olhada.
Tipo vc ker pegar dados de uma tabela joga no bean e depois inserir em otra tabela?
Num entendi nd kkk…
Ai no trampo eu tento te ajuda teh +