java - 如何从字符串设置 JSpinner 的值?

标签 java swing jspinner

我目前正在使用 JSpinner 设置时间值,然后将其作为 varchar 更新到我的数据库,例如中午 12:00:00。然而,在另一种形式中,我想检索在更新表单中添加到我的数据库中的 JSpinner 中的时间。更新表单供用户更新他们之前选择的时间(例如如上所述的 12:00:00 AM)。现在默认时间值是当前时间。我尝试使用 .setValue() 方法,但它是一个非法值,因为我检索到的时间是一个字符串。这是我的代码,让事情变得更清楚:

shiftTime = new JSpinner(new SpinnerDateModel());
    JSpinner.DateEditor de_shiftTime = new JSpinner.DateEditor(shiftTime,
            "hh:mm:ss a");
    shiftTime.setEditor(de_shiftTime);
    shiftTime.setSize(108, 22);
    shiftTime.setLocation(436, 478);
    add(shiftTime);
    shiftTime.setValue(a.getVolDutyShift());

.getVolDutyShift() 方法返回一个字符串(12:00:00 AM,字符串格式) a 是我的对象,它调用 .getVolDutyShift() 方法。 我应该如何解析这个 a.getVolDutyShift() 以便 JSpinner 加载时间作为我的数据库中的时间(12:00:00 AM)?

最佳答案

试试这个。它将把字符串形式的时间转换为 java.sql.Time。

    SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss a");
    java.util.Date d =(java.util.Date)format.parse(a.getVolDutyShift());
    java.sql.Time time = new java.sql.Time(d.getTime());
    shiftTime.setValue(time );

但是您应该始终将日期和时间保存在数据库中的原始数据类型中,而不是保存为 varchar

关于java - 如何从字符串设置 JSpinner 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105375/

相关文章:

java - 内核支持的线程是否运行在内核态?

java - android以编程方式重绘布局

java - 当框架中有两个 JPanel 时,在一个 JPanel 上绘画

java - 如何在jspinner中设置预定义时间

java - JSpinner.DateEditor 5分钟跳转

java - 循环在不同目录中搜索文件

java - 尝试从 URL 加载 JSON,但不知道如何处理异常

java - 面板中组件的对齐

java - 使 JPanel 图像从 actionPerformed() 事件发生变化

java - 如何根据桌面上的触摸屏要求增加 jspinner 箭头的大小