展开全部
DateDropFrame extends JFrame
给year和month添加一个ItemListener来实时计算指定年和月中有多少天就可以了.
代码是用Swing写的,不过看你的图,不像是Swing界面.
/**
* Create the frame.
*/
public DateDropFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));
final JComboBox year = new JComboBox();
year.setModel(new DefaultComboBoxModel(getModel(start, end)));
contentPane.add(year);
final JComboBox month = new JComboBox();
month.setModel(new DefaultComboBoxModel(getModel(1, 12)));
contentPane.add(month);
final JComboBox day = new JComboBox();
contentPane.add(day);
year.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setDay(year, month, day);
}
});
month.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setDay(year, month, day);
}
});
setDay(year, month, day);
setContentPane(contentPane);
}
/**
* calculate days in select month & year
*/
private void setDay(JComboBox year, JComboBox month, JComboBox day) {
int y = Integer.parseInt((String) year.getSelectedItem());
int m = Integer.parseInt((String) month.getSelectedItem());
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, y);
c.set(Calendar.MONTH, m - 1);
int days = c.getActualMaximum(Calendar.DAY_OF_MONTH);
day.setModel(new DefaultComboBoxModel(getModel(1, days)));
}
/**
* get String array [start, end]
*/
private String[] getModel(int start, int end) {
String[] m = new String[end - start + 1];
for (int i = 0; i < m.length; i++) {
m[i] = String.valueOf(i + start);
}
return m;
}
给year和month添加一个ItemListener来实时计算指定年和月中有多少天就可以了.
代码是用Swing写的,不过看你的图,不像是Swing界面.
/**
* Create the frame.
*/
public DateDropFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));
final JComboBox year = new JComboBox();
year.setModel(new DefaultComboBoxModel(getModel(start, end)));
contentPane.add(year);
final JComboBox month = new JComboBox();
month.setModel(new DefaultComboBoxModel(getModel(1, 12)));
contentPane.add(month);
final JComboBox day = new JComboBox();
contentPane.add(day);
year.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setDay(year, month, day);
}
});
month.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
setDay(year, month, day);
}
});
setDay(year, month, day);
setContentPane(contentPane);
}
/**
* calculate days in select month & year
*/
private void setDay(JComboBox year, JComboBox month, JComboBox day) {
int y = Integer.parseInt((String) year.getSelectedItem());
int m = Integer.parseInt((String) month.getSelectedItem());
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, y);
c.set(Calendar.MONTH, m - 1);
int days = c.getActualMaximum(Calendar.DAY_OF_MONTH);
day.setModel(new DefaultComboBoxModel(getModel(1, days)));
}
/**
* get String array [start, end]
*/
private String[] getModel(int start, int end) {
String[] m = new String[end - start + 1];
for (int i = 0; i < m.length; i++) {
m[i] = String.valueOf(i + start);
}
return m;
}
追问
农历能不能弄进去啊?
追答
自己参考公历实现 去添加农历。需要增加一个setMonth函数,当选择的年变化时,需要更新月选择列表(农历有闰月,不再是固定的12个月了)。
展开全部
public static List reader_list;
reader_list = new List(shell, SWT.BORDER); //下拉框
reader_list.setBounds(int,int,int,int); //定位
String[] readerArray= new String[]{"2011","2012",2013"};
reader_list.setItems(readerArray); //赋值
reader_list = new List(shell, SWT.BORDER); //下拉框
reader_list.setBounds(int,int,int,int); //定位
String[] readerArray= new String[]{"2011","2012",2013"};
reader_list.setItems(readerArray); //赋值
追问
后面的月和日怎么办?每个月的日期都不一样!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找一个Swingx的开源项目,里面有一个JDatePicker类,就是一个日历选择器。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接自己做一个日期时间组件就行了
追问
如何把组件添加进去?
追答
就是自己写一个类来封装时间组件,以前拿netbeans做开发的时候,当中没有时间组件,就是自己写好,然后调用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一.直接给出几个下拉列表放些值
二.去网上下个日期代码 选中文本框的时候显示一张日历表
二.去网上下个日期代码 选中文本框的时候显示一张日历表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询