`
showerhan
  • 浏览: 11740 次
社区版块
存档分类
最新评论

使用JComboBox关联三个日期选项

    博客分类:
  • Java
阅读更多

在做Swing开发时,使用三个JComboBox分别表示年月日,而我们要实现的是当改变年份时,2月的天数可以随之改变。或者月份改变时,这个月的天数随之改变。

 

cb_year = new JComboBox();
jp.add(cb_year);
cb_month = new JComboBox();
jp.add(cb_month);
cb_day = new JComboBox();
jp.add(cb_day);

for(int i = 2011; i>1940; i--)
	cb_year.addItem(i);
for(int i = 1; i<=12; i++)
	cb_month.addItem(i);
for(int i=1; i<=31;i++)
	cb_day.addItem(i);

cb_year.addActionListener(new ActionListener() {
	@Override
	public void actionPerformed(ActionEvent evt) {
		 JComboBox cb = (JComboBox) evt.getSource();
		Object newItem = cb.getSelectedItem();
		int days =   getDayByYearAndMonth(Integer.parseInt(newItem.toString())
       		       ,Integer.parseInt(cb_month.getSelectedItem().toString()));
      	   	cb_day.removeAllItems();
		for(int i=1; i<=days;i++)
		cb_day.addItem(i);
	}
});

cb_month.addActionListener(new ActionListener() {
	@Override
	public void actionPerformed(ActionEvent evt) {
		JComboBox cb = (JComboBox) evt.getSource();
		Object newItem = cb.getSelectedItem();
		int days = getDayByYearAndMonth(
                        Integer.parseInt(cb_year.getSelectedItem().toString())
			,Integer.parseInt(newItem.toString())
                );
		cb_day.removeAllItems();
		for(int i=1; i<=days;i++)
			cb_day.addItem(i);
		}
});
 

public static int getDayByYearAndMonth(int year,int month)
	{
		if(month==2) 
			if((year%4==0&&year%100!=0)||(year%100==0&&year%400==0))
				return 29;
			else return 28;
		else if(month==1 || month==3  || month==5 || month==7 || month==8 || month==10 || month==12)
			return 31;
		else return 30;		
	}
 

 

 

 我对这些不熟,就算是抛砖引玉吧~~

 

 

 

分享到:
评论

相关推荐

    三级联动java源代码,文本文档

    用户在选择一级选项时,二级和三级选项会相应地动态更新。 ### 一、三级联动的基本概念 三级联动是指在一个用户界面上,用户对第一级选择器进行选择后,第二级选择器的可选值随之变化;当用户对第二级选择器进行...

    java swing综合程序

    在"Java Swing综合程序"中,我们将深入探讨如何使用Swing组件构建一个功能丰富的用户界面,包括菜单栏(JMenuBar)、工具栏(JPopupMenu)、组合框(JComboBox)、复选框(JCheckBox)和单选按钮(JRadioButton),...

    三级联动java源代码

    在IT领域,"三级联动"通常指的是在用户界面设计中,三个下拉菜单或选择框之间存在的联动关系。这种联动关系常用于数据筛选、地区选择、分类导航等场景,使得用户能够逐步细化他们的选择。例如,在一个省份-城市-区县...

    java实验六.doc

    例如,在`RadioCheckDemo`中,创建了三个`JRadioButton`对象,并使用`ButtonGroup`来确保一次只有一个按钮被选中。 2. **组合框(JComboBox)的事件处理**: `JComboBox`是Java GUI中的一种下拉列表组件,允许用户...

    2021-2022计算机二级等级考试试题及答案No.2126.docx

    - **背景理解**:Visual FoxPro中的日期时间操作允许使用日期间隔进行加减运算。 ### 7. 常用浏览器 **知识点说明:** - **浏览器介绍**:IE(Internet Explorer)是微软公司推出的一款广泛使用的浏览器。 - **...

    2021-2022计算机二级等级考试试题及答案No.3037.docx

    `这条语句可以用来接收三个整数的输入,并分别赋值给x、y和z。 ### Java Web应用的类文件位置 13. **类文件的放置位置**:在Java Web应用中,类文件应当放置在特定的位置以便正确加载。例如,对于位于`org....

    2021-2022计算机二级等级考试试题及答案No.11651.docx

    **多对多**:每个实体都可以与其他实体有多个关联。 - B. **一对多**:一个实体可以与多个其他实体关联。 - C. **多对一**:多个实体可以与一个其他实体关联。 - D. **一对一**:一个实体仅与一个其他实体关联。...

    2021-2022计算机二级等级考试试题及答案No.13401.docx

    14. **E-R图转换**:M:N的联系意味着两个实体间有多对多的关系,转换为关系模式时会产生三个关系表。 15. **页面设置对话框**:页面设置对话框通常包含边距、列、纸张等选项,不包括行。 16. **Word2003闪烁竖线**...

    2021-2022计算机二级等级考试试题及答案No.9204.docx

    - **查询准则**:在SQL查询中,使用`BETWEEN`关键字结合日期函数`Date()`可以用来查找某个时间段内的记录。 - **示例**:`SELECT * FROM 表名 WHERE 工作时间 BETWEEN Date() AND Date()-20;` #### 知识点十二:...

    2021-2022计算机二级等级考试试题及答案No.9764.docx

    - **分割结果**:原字符串被分割成 `"abc", "def", "dh"` 三个部分。 #### 13. 内存与外存 - **题目描述**:外存中的数据可以直接进入CPU被处理。正确答案? - **正确答案**:错误 - **知识点详解**: - **数据...

    java词汇解释

    这三个术语通常可以互换使用。 #### child class / derived class 子类/派生类,是指在一个继承关系中继承其他类的类。子类继承了父类的特征,并可以扩展或重写父类的行为。 #### override 重写,是指子类中重新...

Global site tag (gtag.js) - Google Analytics