Sto svolgendo un esercizio che richiede la costruzione di una interfaccia grafica usando JavaFX però visto che non riesco a venirne a capo ( http://forum.html.it/forum/showthrea...readid=2921670 ) per via di un errore che non mi fa apparire proprio l'interfaccia creata ho deciso di fare l'esercizio definendo l'interfaccia tramite la libreria Swing (AWT la uso solo per gli eventi e il layout visto che mi sa che è l'unico modo).
Il programma ha il compito di riempire un database precedentemente creato tramite MySQL con i nomi delle persone, gli indirizzi e i numeri di telefono, ed eventualmente anche di visualizzare i dettagli di una determinata persona specificando solo il nome.
Io ho creato l'interfaccia e ho gestito gli eventi su di essa ma ho un problema durante l'aggiunta dei nomi.
Se provo a inserire i dettagli della persona (nome, indirizzo e telefono) attraverso l'interfaccia l'inserimento va a buon fine, e infatti i dati inseriti tramite interfaccia vengono correttamente inseriti nel db, ma mi viene restituita un'eccezzione.
Questo è ciò che è visualizzato su console:
codice:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "numero"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at com.java8.mod19.test.Rubrica.lambda$0(Rubrica.java:99)
at com.java8.mod19.test.Rubrica$$Lambda$16/1996181658.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
e questo è il pezzo di codice incriminato:
codice:
buttonAggiungi.addActionListener(event -> {
String nome = textFieldNome.getText();
String indirizzo = textFieldIndirizzo.getText();
String numero = textFieldNumero.getText();
int numero2 = Integer.parseInt(numero);
try {
Aggiungere.aggiungi(nome, indirizzo, numero2);
}
catch(SQLException | ClassNotFoundException exc) {
exc.printStackTrace();
}
textFieldNome.setText("nome");
textFieldIndirizzo.setText("indirizzo");
textFieldNumero.setText("numero");
});
Il problema deriva dal fatto che il campo "telefono" nel db è di tipo int mentre io lo vado ad inserire in un JTextField che accetta stringhe. Il problema l'avevo aggirato trasformando la stringa inserita in un intero (tramite Integer.parseInt()) ma evidentemente questa operazione non viene digerita.
Cosa ne pensate? E' strano perchè l'operazione comunque va a buon fine.