我有一個使用SpinnerDateModel的JSpinner,該SpinnerDateModel開始於2010年1月1日00:00:00.000結束日期爲2010年1月1日00:12 :34.217。我希望我的JSpinner.DateEditor使用格式HH:mm:ss.SSS,但是微調不會以此格式旋轉。只有當「yyyy」添加到格式時它纔會旋轉。我怎樣才能解決這個問題?即使開始和結束是同一年,JSpinner.DateEditor必須包括年份
import java.awt.GridLayout;
import java.util.*;
import javax.swing.*;
public class T extends JPanel {
public T() {
super(new GridLayout(2, 2));
init();
}
private void init() {
Calendar start = GregorianCalendar.getInstance();
Calendar end = GregorianCalendar.getInstance();
start.clear();
end.clear();
start.set(Calendar.YEAR, 2010);
end.set(Calendar.YEAR, 2010);
end.add(Calendar.HOUR_OF_DAY, 12);
SpinnerDateModel m1 =
new SpinnerDateModel(start.getTime(), start.getTime(),
end.getTime(), Calendar.MILLISECOND);
SpinnerDateModel m2 =
new SpinnerDateModel(start.getTime(), start.getTime(),
end.getTime(), Calendar.MILLISECOND);
JSpinner workingSpinner = new JSpinner(m1);
workingSpinner.setEditor(
new JSpinner.DateEditor(workingSpinner,
"yyyy HH:mm:ss.SSS"));
JSpinner notWorkingSpinner = new JSpinner(m2);
notWorkingSpinner.setEditor(
new JSpinner.DateEditor(notWorkingSpinner,
"HH:mm:ss.SSS"));
add(new JLabel("Working"));
add(workingSpinner);
add(new JLabel("!Working"));
add(notWorkingSpinner);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
private static void createAndShowGUI() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new T());
frame.pack();
frame.setVisible(true);
}
}
正確,但無法在12:00:00.000停止。就像沒有在模型中設置結束一樣。 – initialZero 2010-10-08 22:20:00
另外,出於某種原因,您的示例也不會向後旋轉。 – initialZero 2010-10-08 23:00:48
更新 - 問題比我原先想象的要深得多。 – Andy 2010-10-08 23:14:32