我在varchar格式的mysql数据库中有一些预定义的时间,例如 - 16:45,00:30,09:15,20:50和10个。
我想在jspinner中显示这些时间中的任何一个我正在尝试但是得到错误 这是我的jspinner设置,我在显示构建器内部的时间 -
Date date = new Date();
SpinnerDateModel sm = new SpinnerDateModel(date, null, null, Calendar.HOUR_OF_DAY);
arr_time.setModel(sm);
JSpinner.DateEditor ar = new JSpinner.DateEditor(arr_time, "HH:mm");
arr_time.setEditor(ar);
这是我的修改按钮代码,我从数据库中获取时间作为字符串,试图在jspinner中显示它们
try {
if (evt.getActionCommand().equals("Modify")) {
String flno=JOptionPane.showInputDialog(this, "Enter Flight Number");
String sql="SELECT * FROM flights WHERE flightno='"+flno+"'";
smt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = smt.executeQuery(sql);
while (rs.next()) {
jTextField1.setText(rs.getString(1));
arr_time.setValue(rs.getString(2));
jTextField4.setText(rs.getString(4));
jTextField5.setText(rs.getString(5));
}
} else if(evt.getActionCommand().equals("Update")) {
}
运行:非法值
netbeans 7.1中出现了错误
答案 0 :(得分:2)
虽然不是很明显,但错误告诉您用于设置JSpinner
的类型和从数据库读入的String
不兼容。 SpinnerDateModel
使用Date
作为基础对象类型
尝试
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
arr_time.setValue(format.parseObject(rs.getString(2))); // e.g. input 16:45