如何更改JSpinner上的默认选择?

时间:2012-06-08 14:21:45

标签: java swing jspinner

我遇到JSpinner的问题。我在"hh:mm:ss,msmsms"的微调器中使用时间格式。 当我在没有任何选择旋转器格式的情况下使用鼠标来增加时间意味着我不会选择任何时间的部分,例如小时,分钟,秒或毫秒 - 它总是将小时数增加为小时的默认选择。 / p>

我想在第二种方法中给出这个默认选择,当我要使用鼠标增加或减少时间时,它适用于第二部分。

E.G。

01:05:08,102

点击微调器上升状态后,下面的时间到了。

01:05:09,102

这是代码:

Start_time_jSpinner = new javax.swing.JSpinner();
Start_time_jSpinner.setModel(new SpinnerDateModel());
Start_time_jSpinner.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
Start_time_jSpinner.setEditor(new JSpinner.DateEditor(Start_time_jSpinner,   "HH:mm:ss,SSS"));

1 个答案:

答案 0 :(得分:4)

即使选择了'小时'字段,该值也会在向上/向下箭头上一次增加/减少一秒。

import java.util.Date;
import javax.swing.*;

public class SecondIncrement {

    SecondIncrement() {
        JSpinner spinner = new JSpinner();
        SpinnerDateModel dateModel = new SpinnerDateModel(){
            @Override 
            public Object getNextValue() {
                Date date = this.getDate();
                long millis = date.getTime();
                return new Date(millis+1000);
            }

            @Override 
            public Object getPreviousValue() {
                Date date = this.getDate();
                long millis = date.getTime();
                return new Date(millis-1000);
            }
        };
        spinner.setModel(dateModel);
        spinner.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        spinner.setEditor(new JSpinner.DateEditor(spinner, "HH:mm:ss,SSS"));
        JOptionPane.showMessageDialog(null, spinner);
    }

    public static void main(String[] args) throws Exception {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new SecondIncrement();
            }
        });
    }
}