代码中分别用了一个SpinnerListModel和SpinnerDateModel,程序运行后,当我想微调DateEditor中的3个日期参数(月份,日期,年),如果我想首先调整年或日期,但是当我光标点位到年或者日期时,光标却会出现在“月份上”,我需要再把光标点到年或者日期才能微调。现在我想我最开始光标定位到哪个地方就能进行微调,请问这个问题该如何解决?高手请解答,谢谢!
以下是代码:
import javax.swing.*;
import javax.swing.event.*;
import java.text.*;
import java.awt.*;
import java.util.*; public class Spinner {
public static void main (String args[]) throws Exception {
JFrame frame = new JFrame("Spinner");
frame.setDefaultCloseOperation(3);
String[] months = new DateFormatSymbols().getMonths();
SpinnerModel model = new SpinnerListModel(months);
JSpinner spinner = new JSpinner(model);
frame.getContentPane().add(spinner, BorderLayout.NORTH); SpinnerDateModel model2 = new SpinnerDateModel();
model2.setCalendarField(Calendar.WEEK_OF_MONTH);
JSpinner spinner2 = new JSpinner(model2);
JSpinner.DateEditor editor2 = new JSpinner.DateEditor(spinner2, "MMMMM dd, yyyy");
spinner2.setEditor(editor2);
frame.getContentPane().add(spinner2, BorderLayout.SOUTH);
ChangeListener listener = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
SpinnerModel source = (SpinnerModel)e.getSource();
System.out.println("The value is: " + source.getValue());
}
};
model2.addChangeListener(listener);
frame.pack();
frame.show();
}
}
以下是代码:
import javax.swing.*;
import javax.swing.event.*;
import java.text.*;
import java.awt.*;
import java.util.*; public class Spinner {
public static void main (String args[]) throws Exception {
JFrame frame = new JFrame("Spinner");
frame.setDefaultCloseOperation(3);
String[] months = new DateFormatSymbols().getMonths();
SpinnerModel model = new SpinnerListModel(months);
JSpinner spinner = new JSpinner(model);
frame.getContentPane().add(spinner, BorderLayout.NORTH); SpinnerDateModel model2 = new SpinnerDateModel();
model2.setCalendarField(Calendar.WEEK_OF_MONTH);
JSpinner spinner2 = new JSpinner(model2);
JSpinner.DateEditor editor2 = new JSpinner.DateEditor(spinner2, "MMMMM dd, yyyy");
spinner2.setEditor(editor2);
frame.getContentPane().add(spinner2, BorderLayout.SOUTH);
ChangeListener listener = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
SpinnerModel source = (SpinnerModel)e.getSource();
System.out.println("The value is: " + source.getValue());
}
};
model2.addChangeListener(listener);
frame.pack();
frame.show();
}
}
绝对是一SB