日歷Frame如下:
public class JCalendarFrame extends JFrame { private static final long serialVersionUID = 2485844292810125818L; public JCalendarFrame() {
...
}
}
日期文本輸入區的JTextField如下:
public class DateTextField extends JFormattedTextField { private static final long serialVersionUID = 6586245387546242836L; private static MaskFormatter maskFormatter; public DateTextField(String value) {
this();
enableEvents(AWTEvent.FOCUS_EVENT_MASK);
setFocusLostBehavior(COMMIT_OR_REVERT);
setFormatterFactory(new DefaultFormatterFactory(maskFormatter)); setColumns(20);
if (null == value || "".equals(value)) {
setValue("");
} else {
setValue(value);
}
}
}
哪位高手能幫我寫個類:
實現將以上兩者結合起來,形成一個控件,左面是日期文本區,右面是日曆小按鈕。
按下小按鈕彈出日歷Frame,選擇日期后將日期以文本形式填加到文本區,日歷Frame關閉。小弟初來乍到,窮,分不多,抱歉!
public class JCalendarFrame extends JFrame { private static final long serialVersionUID = 2485844292810125818L; public JCalendarFrame() {
...
}
}
日期文本輸入區的JTextField如下:
public class DateTextField extends JFormattedTextField { private static final long serialVersionUID = 6586245387546242836L; private static MaskFormatter maskFormatter; public DateTextField(String value) {
this();
enableEvents(AWTEvent.FOCUS_EVENT_MASK);
setFocusLostBehavior(COMMIT_OR_REVERT);
setFormatterFactory(new DefaultFormatterFactory(maskFormatter)); setColumns(20);
if (null == value || "".equals(value)) {
setValue("");
} else {
setValue(value);
}
}
}
哪位高手能幫我寫個類:
實現將以上兩者結合起來,形成一個控件,左面是日期文本區,右面是日曆小按鈕。
按下小按鈕彈出日歷Frame,選擇日期后將日期以文本形式填加到文本區,日歷Frame關閉。小弟初來乍到,窮,分不多,抱歉!
public class JCalendarFrame extends JFrame { private static final long serialVersionUID = 2485844292810125818L; public JCalendarFrame() {
...
} private Calendar calendar;
public Calendar getCalendar(){return calendar;}
}
public class DateTextField extends JFormattedTextField { private static final long serialVersionUID = 6586245387546242836L; private static MaskFormatter maskFormatter; public DateTextField(String value) {
this();
enableEvents(AWTEvent.FOCUS_EVENT_MASK);
setFocusLostBehavior(COMMIT_OR_REVERT);
setFormatterFactory(new DefaultFormatterFactory(maskFormatter)); setColumns(20);
if (null == value || "".equals(value)) {
setValue("");
} else {
setValue(value);
}
}
}
public class Test extends JFrame {
public Test() {
final DateTextField date = new DateTextField();
this.getContentPane().add(date);
final Button btn = new Button("...");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
final JCalendarFrame calendar = new JCalendarFrame();
calendar.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
date.setText(new SimpleDateFormat("yyyy-MM-dd").format(calendar.getCalendar().getTime()));
}
});
}
});
this.getContentPane().add(btn);
}
}