我遇到了JSpinner的问题.我在微调器中使用的时间格式为“ hh:mm:ss,msmsms”.
当我用鼠标来增加时间而不在??微调器格式上进行任何选择时,意味着我没有选择时间的任何部分,例如小时,分钟,秒或毫秒-它始终将小时作为默认选择,以小时为单位.
我想在第二种方法上提供此默认选择,当我要使用鼠标增加或减少时间时,它可以在第二部分上使用.
例如.
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"));
最佳答案
即使选择了“小时”字段,该值也会在向上/向下箭头上一次增加/减少一秒.
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();
}
});
}
}