Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pedroalves

[Resolvido] Jcombo

Recommended Posts

eu defini no jcombo os dados no Model

eu não estou a conseguir inserir na minha base de dados o dados do jcombo

long Quantidades;
String nome,descricao,preco;
String Iva;
    // We have to parse the text to a type float.
    nome=String.format(jTextField32.getText());
    descricao =String.format(jTextField33.getText());
    Quantidades= Long.parseLong(jTextField34.getText());
    preco = String.format(jTextField35.getText());
    Iva = String.format(jComboBox1.getModel());
      try {
Statement stmt = conn.createStatement();
String query="Insert into produtos (Nome,descricao,Quantidade,Iva,Preco_sem_iva) VALUES('"+nome+"','"+descricao+"','"+Quantidades+"','"+Iva+"','"+preco+"');";
System.out.println(""+query);
int rest = stmt.executeUpdate(query);

if (rest==0){
System.out.println("REst deu o");
}


}
catch (Exception e){

System.out.println("Erro Ao executar a query: "+ e.getMessage());
}
this.jFrame16.setVisible(true);
this.jFrame16.setSize(632, 493);
this.jFrame15.setVisible(false);
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro de tudo. Cuidado com esses códigos prontos da internet! Espero que não esteja usando isso num sistema em produção, apenas estudando.

 

Até onde eu sei, pra recuperar o valor de um JComboBox você deve fazer da seguinte maneira:

String texto = combo.getSelectedValue().toString(); // pode dar nullpointer
// ou
String texto = (String) combo.getSelectedValue(); // pode retornar uma String cujo valor é "null"

Não utilize Statement, pesquise sobre a interface PreparedStatement. É muito mais seguro. Esse negócio de montar a query na String não existe. É muito perigoso.

 

Pra quê serve isso?

System.out.println(""+query);

Por que não

System.out.println(query);
?

 

E por favor, dê nomes mnemônicos para seus componentes. jComboBox33?!?! Que raios é isso, pra que serve? Use comboboxNome ou cmbNome. Use padrões de nomenclatura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse codigo foi feito por mim

o que mal tem eu ter jcombo33 é o nome que eu atribui ao jcombo

 

que tipo de perigo pode ter

 

a onde tenho que por isto

String texto = combo.getSelectedValue().toString(); // pode dar nullpointer
// ou
String texto = (String) combo.getSelectedValue(); // pode retornar uma String cujo valor é "null"

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse codigo foi feito por mim

o que mal tem eu ter jcombo33 é o nome que eu atribui ao jcombo

 

Você não tem como saber que objeto é esse. jcombo33 quer dizer alguma coisa? Não! Quando se trabalha em projetos com mais de um caso de uso por exemplo, você se perde totalmente. Perde-se muito tempo pra descobrir o que aquela variável faz. Por isso utiliza padrões de nomes. Isso é uma boa prática em programação.

 

que tipo de perigo pode ter

 

SQL Injection por exemplo. Fora a bagunça que vira o código fonte. Dar manutenção nisso é um caos.

 

a onde tenho que por isto

String texto = combo.getSelectedValue().toString(); // pode dar nullpointer
// ou
String texto = (String) combo.getSelectedValue(); // pode retornar uma String cujo valor é "null"
Essa é a forma correta de se obter o texto do objeto selecionado num combobox. A classe JComboBox não possui o método getText. Você não deve nem estar conseguindo compilar esse código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

realmente o meu codigo esta um bocado confuso

ou seja vai ter ficar assim

long Quantidades;
String nome,descricao,preco;
String Iva ;
    // We have to parse the text to a type float.
    nome=String.format(jTextField32.getText());
    descricao =String.format(jTextField33.getText());
    Quantidades= Long.parseLong(jTextField34.getText());
    preco = String.format(jTextField35.getText());
    String Iva = combo.getSelectedValue().toString(); 
    
      try {
Statement stmt = conn.createStatement();
String query="Insert into produtos (Nome,descricao,Quantidade,Iva,Preco_sem_iva) VALUES('"+nome+"','"+descricao+"','"+Quantidades+"','"+Iva+"','"+preco+"');";
System.out.println(""+query);
int rest = stmt.executeUpdate(query);

if (rest==0){
System.out.println("REst deu o");
}


}
catch (Exception e){

System.out.println("Erro Ao executar a query: "+ e.getMessage());
}
this.jFrame16.setVisible(true);
this.jFrame16.setSize(632, 493);
this.jFrame15.setVisible(false);
    }

da-me sempre este erro

Exception in thread "AWT-EventQueue-0" java.lang.Error: java.lang.reflect.InvocationTargetException

at org.jdesktop.application.ApplicationAction.actionFailed(ApplicationAction.java:859)

at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:665)

at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)

at java.awt.Component.processMouseEvent(Component.java:6263)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)

at java.awt.Component.processEvent(Component.java:6028)

at java.awt.Container.processEvent(Container.java:2041)

at java.awt.Component.dispatchEventImpl(Component.java:4630)

at java.awt.Container.dispatchEventImpl(Container.java:2099)

at java.awt.Component.dispatchEvent(Component.java:4460)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)

at java.awt.Container.dispatchEventImpl(Container.java:2085)

at java.awt.Window.dispatchEventImpl(Window.java:2478)

at java.awt.Component.dispatchEvent(Component.java:4460)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Caused by: java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)

... 27 more

Caused by: java.lang.RuntimeException: Uncompilable source code

at gest2.GEST2View.GRAVARPRODUTO(GEST2View.java:6816)

... 32 more

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caused by: java.lang.RuntimeException: Uncompilable source code

at gest2.GEST2View.GRAVARPRODUTO(GEST2View.java:6816)

Pode ser uma biblioteca disponível em tempo de compilação que não esteja disponível no momento de execução.

 

Talvez os pacotes não estejam corretos, classes em pastas diferentes.

 

Você está utilizando alguma IDE?

Compartilhar este post


Link para o post
Compartilhar em outros sites

topico pode de ser fechado

problema foi resolvido

ja agora como eu tiro dos jframes o painel de minimizar e de sair

obrigada pelas ajudas

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.