我试图从所有类型都为String
的JTable
传递数据,然后当用户选择表中的行时,我想传递给JDateChooser
。但我尝试将日期从字符串类型解析为日期类型,但仍然收到一个错误,显示非法值。
这是代码。
private void tableDataMouseClicked(java.awt.event.MouseEvent evt) {
try{
DefaultTableModel model = (DefaultTableModel) tableData.getModel();
int selectedRowIndex = tableData.getSelectedRow(); //get selected row
Fname.setText(model.getValueAt(selectedRowIndex,1).toString());
Lname.setText(model.getValueAt(selectedRowIndex,2).toString());
ageSpin.setValue(model.getValueAt(selectedRowIndex,3).toString());
Date date = new SimpleDateFormat("yyyy-MM-dd").parse((String)model.getValueAt(selectedRowIndex, 4).toString());
dob.setDate(date);
addressField.setText(model.getValueAt(selectedRowIndex,5).toString());
phoneNumField.setText(model.getValueAt(selectedRowIndex,6).toString());
emailField.setText(model.getValueAt(selectedRowIndex,7).toString());
}catch(ParseException e){
e.printStackTrace();
Logger.getLogger(addCitizzen.class.getName()).log(Level.SEVERE, null, e);
}
}
这是我得到的错误:
java.lang.IllegalArgumentException: illegal value
当程序到达Date
部分时会出现错误。
错误是由于传递的参数引起的。这是一个有效的:
Date date = new SimpleDateFormat("dd-MM-yyyy").parse((String)model.getValueAt(selectedRowIndex, 4).toString());