【问题标题】:Retrieve time from MySQL database & populate JSpinner in Java从 MySQL 数据库中检索时间并用 Java 填充 JSpinner
【发布时间】:2015-04-15 14:47:09
【问题描述】:

如何从 MySQL 数据库中检索时间格式并使用它在 Java 中填充 JSpinner?当我单击“下一步”按钮时,应该填充JSpinner。我目前使用的代码如下:

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, 24); // 24 == 12 PM == 00:00:00
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);

    SpinnerDateModel model = new SpinnerDateModel();
    model.setValue(calendar.getTime());

    spinner = new JSpinner(model);
    JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, "HH:mm:ss");
    DateFormatter formatter = (DateFormatter)editor.getTextField().getFormatter();
    formatter.setAllowsInvalid(false); 
    formatter.setOverwriteMode(true);

    spinner.setEditor(editor);
    spinner.setBounds(419, 218, 119, 26);
    frame.getContentPane().add(spinner);

    JButton btnNext = new JButton("Next");
    btnNext.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
                try {
                    if(rs.next()){
                    String time = rs.getString("Time");
                    spinner.setValue(time); // This is not working
                ...
        }
    }

【问题讨论】:

    标签: java mysql swing jspinner


    【解决方案1】:

    您使用SpinnerDateModel 作为JSpinner 的模型,它使用Date 类型,但您正在尝试设置String 值。

    我认为您需要在设置 spinner 的值之前将其格式化为 Date :

    String time = rs.getString("Time");
    SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
    spinner.setValue(format.parseObject(time));
    

    【讨论】:

    • 这行得通!谢谢你加载:) 如果你不介意,你能看看这个问题吗? :/ stackoverflow.com/questions/29644685/…
    • 很抱歉再次打扰您.. 如果我想清除或重置微调器到 00:00:00 怎么办?我如何做到这一点?
    • 创建String reset = "00:00:00",格式化并设置值如上代码所示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    相关资源
    最近更新 更多