Java 如何更改JSpinner上的默认选择?
我面临Java 如何更改JSpinner上的默认选择?,java,swing,jspinner,Java,Swing,Jspinner,我面临JSpinner的问题。我在微调器中使用的时间格式是“hh:mm:ss,msmsms”。 当我在微调器格式上没有任何选择的情况下使用鼠标增加时间时,意味着我没有选择时间的任何部分,例如小时、分钟、秒或毫秒-它总是增加小时作为小时的默认选择 我想在第二种方式上给出这个默认选择,当我要增加或减少使用鼠标的时间时,它在第二(s)部分起作用 例如。 单击“微调器向上”状态后,将出现以下时间 01:05:09,102 代码如下: Start_time_jSpinner = new javax.sw
JSpinner
的问题。我在微调器中使用的时间格式是“hh:mm:ss,msmsms”
。
当我在微调器格式上没有任何选择的情况下使用鼠标增加时间时,意味着我没有选择时间的任何部分,例如小时、分钟、秒或毫秒-它总是增加小时作为小时的默认选择
我想在第二种方式上给出这个默认选择,当我要增加或减少使用鼠标的时间时,它在第二(s)部分起作用
例如。
单击“微调器向上”状态后,将出现以下时间
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();
}
});
}
}
或者,您可以在
getxxxxValue()
:公共对象getNextValue(){setCalendarField(Calendar.SECOND);return super.getNextValue();}
中重置日历字段(不幸的是,每次单击按钮时,该字段都会被UI覆盖)我希望将默认选择小时更改为秒,并且选择标记也将微调器中的小时更改为秒。首先,当我没有选择任何内容时,如果单击微调器的向上状态,则它会修改秒数。但是如果我选择了小时,分钟,那么微调器会修改这些@安德鲁·汤普森
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();
}
});
}
}