其实我正在研究Java Swing的前端和Mysql作为我系统的后端。 我有一个Java swing表单,它包含一些JTextField,因此需要一些JTextField来填充必需的,一些是可选的。但是当我没有在可选的JTextField中输入任何值时,它显示NumberFormatException。 我已经将mysql数据库表中的null设置为那些可选字段,但仍然无效。如何接受Java中的空JTextField?
你能帮我解决吗?
谢谢
String value1=(String)cb.getSelectedItem();
String value2=t2.getText();
String value3=t3.getText();
String value4=t4.getText();
String value5=(String)cb5.getSelectedItem();
double value6=Double.parseDouble(t6.getText());
String value7=(String)cb7.getSelectedItem();
double value8=Double.parseDouble(t8.getText());
String value9=t9.getText();
try
{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost/Priyanka","root","root");
ps=con.prepareStatement("insert into ReceiptsVoucher values(?,?,?,?,?,?,?,?,?);");
ps.setString(1,value1);
ps.setString(2,value2);
ps.setString(3,value3);
ps.setString(4,value4);
ps.setString(5,value5);
ps.setDouble(6,value6);
ps.setString(7,value7);
ps.setDouble(8,value8);
ps.setString(9,value9);
int r=ps.executeUpdate();
if(r==0)
JOptionPane.showMessageDialog(null,"Record not Inserted retry"," ",JOptionPane.ERROR_MESSAGE);
else
JOptionPane.showMessageDialog(null,"Record Inserted Sucessfully"," ",JOptionPane.INFORMATION_MESSAGE);
ps.close();
con.close();
JComboxBox即CB7和JTextField的T8是可选字段
String value1=(String)cb.getSelectedItem();
String value2=t2.getText();
String value3=t3.getText();
String value4=t4.getText();
String value5=(String)cb5.getSelectedItem();
double value6=Double.parseDouble(t6.getText());
String value7=(String)cb7.getSelectedItem();
String v8=t8.getText();
//double value8=Double.parseDouble(t8.getText());
String value9=t9.getText();
try
{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost/Priyanka","root","root");
ps=con.prepareStatement("insert into ReceiptsVoucher values(?,?,?,?,?,?,?,?,?);");
ps.setString(1,value1);
ps.setString(2,value2);
ps.setString(3,value3);
ps.setString(4,value4);
ps.setString(5,value5);
ps.setDouble(6,value6);
ps.setString(7,value7);
if(v8 != null && !v8.isEmpty())
{
double value8=Double.parseDouble(v8);
ps.setDouble(8, value8);
}
else
{
ps.setNull(8, Types.DOUBLE);
}
//ps.setDouble(8,value8);
ps.setString(9,value9);
int r=ps.executeUpdate();
if(r==0)
JOptionPane.showMessageDialog(null,"Record not Inserted retry"," ",JOptionPane.ERROR_MESSAGE);
else
JOptionPane.showMessageDialog(null,"Record Inserted Sucessfully"," ",JOptionPane.INFORMATION_MESSAGE);
ps.close();
con.close();
问题解决了。这工作现在很好。谢谢大家
考虑提供一个[runnable示例](https://stackoverflow.com/help/mcve),它演示了您的问题。这会减少混淆和更好的反应 – MadProgrammer 2014-11-05 06:15:34
您能否提供示例代码? – DeepInJava 2014-11-05 06:19:09
你确定你没有试图解析JTextField的内容吗? – 2014-11-05 06:29:10