E você tem este código do cliente ?
então! tenho sim, mas não to sabendo setar ele…
tipo no combobox da para colocar codigo e nome ou só codigo ou só nome…
mas na hora de gravar não sei como fazer isso!
Sabe qual o problema? Por que tipo assim… o comando que você usa para listar no combobox é um ResultSet.next() dentro de um while que mostra todos os valores do comando sql que você criou, o problema vai ser setar um valor no textfield de um select que você usa para listar todos no combobox… o jeito digamos “burro” seria você criar tipo método igual ao que você usa para pegar listar no combobox e no comando sql colocar um where nome=“getselectedItem()”
Tendeu? rsrs senão quando eu chegar em casa posto um exemplo.
intendi mais ou menos cara… eu quero apenas adicionar o animal com o cliente, mas tah ficando dificil… hahahahaha
Cara, acho que você está entendendo errado como funciona o comboBox.
Você está preenchendo ele com clientes, certo?
cbmcliente.addElement(cliente);
Quando você faz isso, no comboBox, por default, ele irá o método toString da classe para preencher o rótulo(Label) na hora do usuário selecionar.
Public class Cliente{
.
.
.
@Override
public String toString() {
return nome;
}
}
Isso quer dizer quê, digamos que o o combobox está preenchido com cliente, porém irá aparecer só o nome na hora de selecionar.
Se você reescrever o método toString e colocar para retornar o ID , irá aparecer o ID no combobox.
@Override
public String toString() {
return id;
}
}
Você está passando o cliente com tudo preenchido, porém só aparece na tela o que você reescreveu no método.
Agora vamos lá. Voce quer atualizar a caixa de texto sempre que for selecionado outro cliente no combobox,certo?
Procure qual evento é ativado quando o valor do comboBox mude, e nele coloque:
Cliente cliente = (Cliente)cbmcliente.getSelectedItem(); //pega o objeto que foi selecionado e faz um cast para Cliente.. Lembre-se que apesar de só exibir o nome, aqui está o objeto com as outras informações também.
txtCodigoCliente.setText(cliente.getCodigo().toString()); //seta o id na sua caixa de texto.
Pronto.
Seria legal se você tentasse fazer o contrário também, digitando, por exemplo 1, na caixa de texto, ele atualiza-se o comboBox e seleciona-se o cliente de acordo com o Id que você digitou.
Aqui vai um exemplo que estou usando em um programa que estou desenvolvendo…
[code] public List listarAgendamentosDia(){
SimpleDateFormat formatData = new SimpleDateFormat(“dd/MM/yyyy”);
Date data = new Date(System.currentTimeMillis());
String date = formatData.format(data);
ResultSet RS;
String select=“select * from novoagendamento where data = '”+date+"’";
List agendamento = new ArrayList<>();
try {
RS = inserir.Consulta(select);
while(RS.next()){
Agendamento ag = new Agendamento();
ag.setCodigo(RS.getInt(“codigo”));
ag.setHorario(String.valueOf(RS.getString(“horario”)));
ag.setData(String.valueOf(RS.getString(“data”)));
ag.setNome(String.valueOf(RS.getString(“nome”)));
ag.setServico(String.valueOf(RS.getString(“servico”)));
ag.setTelefone(String.valueOf(RS.getString(“telefone”)));
agendamento.add(ag);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
inserir.Exit();
} catch (SQLException ex) {
Logger.getLogger(NovoAgendamento.class.getName()).log(Level.SEVERE, null, ex);
}
return agendamento;
}[/code]
seria nesse mesmo metodo???
DefaultComboBoxModel cbmcliente = new DefaultComboBoxModel();
for ( Cliente cliente : lista ) {
cbmcliente.addElement(cliente);
cbcliente.setModel(cbmcliente);
Cliente cliente = (Cliente)cbmcliente.getSelectedItem(); //pega o objeto que foi selecionado e faz um cast para Cliente.. Lembre-se que apesar de só exibir o nome, aqui está o objeto com as outras informações também.
txtCodigoCliente.setText(cliente.getCodigo().toString());
[quote=michetti]Aqui vai um exemplo que estou usando em um programa que estou desenvolvendo…
[code] public List listarAgendamentosDia(){
SimpleDateFormat formatData = new SimpleDateFormat(“dd/MM/yyyy”);
Date data = new Date(System.currentTimeMillis());
String date = formatData.format(data);
ResultSet RS;
String select=“select * from novoagendamento where data = '”+date+"’";
List agendamento = new ArrayList<>();
try {
RS = inserir.Consulta(select);
while(RS.next()){
Agendamento ag = new Agendamento();
ag.setCodigo(RS.getInt(“codigo”));
ag.setHorario(String.valueOf(RS.getString(“horario”)));
ag.setData(String.valueOf(RS.getString(“data”)));
ag.setNome(String.valueOf(RS.getString(“nome”)));
ag.setServico(String.valueOf(RS.getString(“servico”)));
ag.setTelefone(String.valueOf(RS.getString(“telefone”)));
agendamento.add(ag);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
inserir.Exit();
} catch (SQLException ex) {
Logger.getLogger(NovoAgendamento.class.getName()).log(Level.SEVERE, null, ex);
}
return agendamento;
}[/code][/quote]
então cara tentei fazer da data igual você fez, mas está retornando esse erro aqui
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: '’' for column 'data_nascimento' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4094)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2734)
So que não seu caso a condição do where tem que ser o que o foi selecionado no combobox…
como ficaria? boiei agora!
Vai ai o exemplo…
DAO
public class dao {
Conexao inserir;
public dao(){
inserir = new Conexao();
}
public String listarAgendamentos(String op){
ResultSet RS;
String resultado = null;
String select="select * from novoagendamento where codigo='"+op+"'";
try {
RS = inserir.Consulta(select);
while(RS.next()){
model ag = new model();
JOptionPane.showMessageDialog(null, RS.getString("servico"));
ag.setOp(RS.getString("servico"));
resultado = ag.getOp();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
inserir.Exit();
} catch (SQLException ex) {
Logger.getLogger(dao.class.getName()).log(Level.SEVERE, null, ex);
}
return resultado;
}
}
MODEL
[code]public class model {
private String op;
public String getOp() {
return op;
}
public void setOp(String op) {
this.op = op;
}
}
[/code]
VIEW
public void preencheTF(){
String op = String.valueOf(jComboBox1.getSelectedItem());
dao dao = new dao();
model resultado = new model();
String msg = dao.listarAgendamentos(op);
jTextField1.setText(msg);
}
ai criei um evento que ao clicar em uma opção do combobox chama o metodo peencheTF();
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
preencheTF();
}
galera larguei mão daquele bang de um campo codigo, não tenho muito tempo para fazer isso
eu preciso apenas gravar o animal…
alguém pode me ajudar?
michetti valew vou ver isso mais adiante, mas o mais urgente agora é gravar o animal…
Qual o problema em gravar o animal ? Esta dando algum erro ou você não esta conseguindo pensar em como salvar?
está dando um erro…
que é esse aqui…
Error to try 8 with value Rafael Almeida
java.sql.SQLException: No value specified for parameter 9
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2611)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2586)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2432)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
at br.com.banhotosa.Dao.GenericDAO.executeCommand(GenericDAO.java:63)
at br.com.banhotosa.Dao.AnimalDAO.AdcionarAnimal(AnimalDAO.java:29)
at br.com.banhotosa.View.FrmaddAnimal.btokActionPerformed(FrmaddAnimal.java:263)
at br.com.banhotosa.View.FrmaddAnimal.access$400(FrmaddAnimal.java:22)
at br.com.banhotosa.View.FrmaddAnimal$5.actionPerformed(FrmaddAnimal.java:123)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1082)
at java.awt.Component.show(Component.java:1651)
at java.awt.Component.setVisible(Component.java:1603)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1005)
at br.com.banhotosa.View.FrmAnimal.btnovoActionPerformed(FrmAnimal.java:177)
at br.com.banhotosa.View.FrmAnimal.access$100(FrmAnimal.java:20)
at br.com.banhotosa.View.FrmAnimal$2.actionPerformed(FrmAnimal.java:67)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1082)
at java.awt.Component.show(Component.java:1651)
at java.awt.Component.setVisible(Component.java:1603)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1005)
at br.com.banhotosa.View.FrmPrincipal.jButton3ActionPerformed(FrmPrincipal.java:264)
at br.com.banhotosa.View.FrmPrincipal.access$200(FrmPrincipal.java:16)
at br.com.banhotosa.View.FrmPrincipal$3.actionPerformed(FrmPrincipal.java:81)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
O erro está claro:
[quote]Error to try 8 with value Rafael Almeida
java.sql.SQLException: No value specified for parameter 9 [/quote]
Veja o que vc está passando no parametro 8 e no 9 no seu “insert into ? ? ?”
meu insert é esse
public int AdcionarAnimal(Animal animal) throws SQLException {
animal.setCodigo(getNextId("Animal"));
String query = "INSERT INTO animal (Codigo, nome_animal, raca, cor, data_nascimento, data_vacina, tipo, obs, cliente) values (?,?,?,?,?,?,?,?,?)";
executeCommand(query, animal.getCodigo(), animal.getNome_animal(), animal.getRaca(), animal.getCor(), animal.getData_nascimento(), animal.getData_vacina(), animal.getTipo(), animal.getObs(), animal.getClientes());
return animal.getCodigo();
}
passa o codigo do executeCommand tb
public int executeCommand(String query,Object... params) throws SQLException {
PreparedStatement ps = getStatement(query);
for (int i = 0; i < params.length; i++) {
try {
ps.setObject(i+1, params[i]);
} catch (Exception e) {
System.out.println("Error to try "+i+" with value "+params[i]);
}
}
“chutometro” sse eu não me engano o PreparedStatment usa é o setString e não o setObject…