0

我在 mysql 数据库中有一些以 varchar 格式预定义的时间,例如 - 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 中出现错误

4

1 回答 1

2

虽然不明显,但错误告诉您用于设置的类型JSpinnerString从数据库中读取的类型不兼容。SpinnerDateModel使用 aDate作为基础对象类型

尝试

SimpleDateFormat format = new SimpleDateFormat("HH:mm");
arr_time.setValue(format.parseObject(rs.getString(2))); // e.g. input 16:45
于 2013-09-19T19:57:02.467 回答