`
- 浏览:
656209 次
- 性别:
- 来自:
太原
-
一个java实现的简单日历,采用左树右列表的方式实现,具有参考意义
在论坛里面看到的,觉得挺好,具有参考价值。
直接将两个文件放在一起就可以运行。
/**//*FileCalendarBean.java
*author:***
*Date:2007-12-823:37
*返回某年某月的日历的字符串数组
*/
importjava.util.Calendar;
publicclassCalendarBean...{
intyear=2007,month=0;
privateintmonthDays[]=...{31,28,31,30,31,30,31,31,30,31,30,31};
//设置年份
publicvoidsetYear(intyear)...{
this.year=year;
}
//获取年份
publicintgetYear()...{
returnyear;
}
//设置月份
publicvoidsetMonth(intmonth)...{
this.month=month>0?month:1;
}
//获取月份
publicintgetMonth()...{
returnmonth;
}
//判断是否为闰年
privatestaticbooleanisLeap(intyear)...{
return((year%4==0)&&(year%100==0))||(year%400==0);
}
//获得当前年月的日历所组成字符串数组
publicString[][]getCalendar()...{
Stringdata[][]=newString[6][7];
Calendarcale=Calendar.getInstance();
cale.set(year,month-1,1);
//该月1号是星期几
intweekDay=cale.get(Calendar.DAY_OF_WEEK)-1;
//该月的天数
intday=monthDays[month-1];
if(month==2&&isLeap(year))day=29;
intnextDay=1;
//添加字符串数组
for(intk=0;k<6;k++)...{
if(k==0)
for(intj=weekDay;j<7;j++)...{
data[k][j]=""+nextDay;
nextDay++;
}
else
for(intj=0;j<7&&nextDay<=day;j++)...{
data[k][j]=""+nextDay;
nextDay++;
}
}
returndata;
}
}
/**//*FileCalenderFrame.java
*author:***
*Date:2007-12-823:37
*一个简单的日历
*/
importjavax.swing.*;
importjavax.swing.tree.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.event.*;
publicclassCalenderFrameextendsJFrameimplementsItemListener,TreeSelectionListener...{
JTabletable;
JTreetree=null;
DefaultMutableTreeNoderoot;
Objectname[]=...{"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
JComboBoxyearList;
CalendarBeancale;
Stringrili[][];
Stringitem[]=...{"2006","2007","2008","2009","2010"};
JSplitPanesplit;
intyear=2006;
intmonth=0;
JScrollPanescrollTree,scrollTable;
publicCalenderFrame()...{
cale=newCalendarBean();
//添加年份列表
yearList=newJComboBox();
for(intk=0;k<item.length;k++)
yearList.addItem(item[k]);
yearList.addItemListener(this);
//添加月份树
root=newDefaultMutableTreeNode(item[0]);
tree=newJTree(root);
add(newJScrollPane(tree),BorderLayout.WEST);
tree.addTreeSelectionListener(this);
//设置年月及该月日历
cale.setYear(year);
cale.setMonth(month);
rili=cale.getCalendar();
table=newJTable(rili,name);
//添加到窗口
scrollTree=newJScrollPane(tree);
scrollTable=newJScrollPane(table);
split=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,scrollTree,scrollTable);
add(yearList,BorderLayout.NORTH);
add(split,BorderLayout.CENTER);
updateYear(year);
//设置窗口属性
setSize(580,350);
setVisible(true);
split.setDividerLocation(0.5);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//更新年份及月份树
privatevoidupdateYear(intyear)...{
cale.setYear(year);
root=newDefaultMutableTreeNode(String.valueOf(year));
DefaultMutableTreeNodemonths[]=newDefaultMutableTreeNode[13];
for(inti=0;i<12;i++)...{
months[i]=newDefaultMutableTreeNode(""+(i+1));
root.add(months[i]);
}
split.remove(scrollTree);
tree=newJTree(root);
tree.addTreeSelectionListener(this);
scrollTree=newJScrollPane(tree);
split.add(scrollTree,JSplitPane.LEFT);
split.setDividerLocation(0.5);
validate();
}
//年份列表的监听器
publicvoiditemStateChanged(ItemEvente)...{
StringyearStr=yearList.getSelectedItem().toString().trim();
intyear=Integer.parseInt(yearStr);
updateYear(year);
}
//树结点的监听器
publicvoidvalueChanged(TreeSelectionEvente)...{
DefaultMutableTreeNodemonthNode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(monthNode.isLeaf())...{
month=Integer.parseInt(monthNode.toString().trim());
cale.setMonth(month);
rili=cale.getCalendar();
split.remove(scrollTable);
table=newJTable(rili,name);
scrollTable=newJScrollPane(table);
split.add(scrollTable,JSplitPane.RIGHT);
split.setDividerLocation(0.5);
validate();
System.out.println("validateok");
}
}
publicstaticvoidmain(Stringargs[])...{
newCalenderFrame();
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
左树右对话框
创建左树右表基础资料1
文章目录element框架混用一,安装二,引入使用找到文件并编辑使用(1)第一,加入name名作为组件导出的索引名,我们这里起名为ele(2)在App.vue下导出(3)运行(4)用CSS美化设计三,完成 >>> element框架混用 ...
Vue代码示例,左边Tree,右边对Tree节点配置子表多条数据,列表显示,子表可增删改查。并附上后端Controller.java
建立一个默认的单文档应用程序采用多视图编写一个学生成绩管理系统。左侧为树视图,各级节点分别为学校名称、学院名称、专业名称;右侧为列表视图,显示学生的基本信息和成绩。 编程要求: 设计一个学生成绩管理系统...
js+ztree 实现左侧树将节点拖到右侧面板,动态加载div,动态加载样式
使用elementui 中table实现多选树表格,可多选,可全选, 表格中需要使用tree表格,展开折叠效果,还需要多选表格数据,elementui中有树表格,查看样式及文档,但是没有办法多选,本文章中可以多选获取数据。 ...
实现layui的树形表格treeTable,在layui数据表格之上进行扩展实现,详细使用方法请参考压缩包中的README.md文件和实例.
一个页面,左侧是树形菜单,菜单是三级的,右侧根据左侧菜单而响应不同的结果页面,页面和SqlServer2000数据连接,实现了对数据库的插入操作。可以根据自己的需要扩展。
主要介绍了vue左侧菜单,树形图递归实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
主要介绍了JAVA后台转换成树结构数据返回给前端的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
用于开发左树菜单程序专用图标,使界面变得更加友好。
来自数据设计机构树的一个例子,主要方便运维人员为了建设机构树而进行的一种设计
bootstrap树形表格js插件demo,含有全部的js与css,有对应的html页面调用实现
Ext左树有表格 增删改查, 添加子节点,重命名
金蝶云苍穹列表界面如何以树形结构在表格中展示业务数据
struts+ajax+sql2000技术制作的动态显示左树菜单程序并可以按节点快速查询节点下详细信息,很实用的。
js写的树形菜单; 有两种展示形式:原始树形和放倒table里的树形; 语言两种:简体中文、英文; 在example里有具体应用示例; 个人觉得挺好用的,推荐;
实现的系统功能: 系统管理 部门管理 菜单管理 ...其它:RBAC权限模型设计、权限菜单树、下拉树、左树右表设计等 三、开发环境 3.1、工具与环境 IDEA 2018.3.5 Maven 3 JDK8 Mysql 5.7 Win10 64位系统
后缀:左右根: abc-d*+ 这里a之后是b,a是左树,b是右树里面最左边的。优先找左边的左右根,然后是右边的左右根。 哈夫曼编码 广搜,走完一层在走下一层。一层层走,队列先进先出 深搜,先根,然后左,...