Java万年历源代码Word下载.docx
- 文档编号:16585441
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:21
- 大小:22.08KB
Java万年历源代码Word下载.docx
《Java万年历源代码Word下载.docx》由会员分享,可在线阅读,更多相关《Java万年历源代码Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
privateJScrollPanesp=newJScrollPane(table);
privateJButtonbLastYear=newJButton("
上一年"
);
privateJButtonbNextYear=newJButton("
下一年"
privateJButtonbLastMonth=newJButton("
上月"
privateJButtonbNextMonth=newJButton("
下月"
privateJPanelp1=newJPanel();
//设立八个中间容器,装入布局控制日期的按钮模块
privateJPanelp2=newJPanel(newGridLayout(3,2));
//网格布局
privateJPanelp3=newJPanel(newBorderLayout());
//边界布局
privateJPanelp4=newJPanel(newGridLayout(2,1));
privateJPanelp5=newJPanel(newBorderLayout());
privateJPanelp6=newJPanel(newGridLayout(2,2));
privateJPanelp7=newJPanel(newGridLayout(2,1));
privateJPanelp8=newJPanel(newBorderLayout());
privateJComboBoxtimeBox=newJComboBox(TimeZone.getAvailableIDs());
//对所有支持时区进行迭代,获取所有的id;
privateJTextFieldjtfYear=newJTextField(5);
//jtfYeaar年份显示输入框
privateJTextFieldjtfMonth=newJTextField
(2);
//jtfMouth月份显示输入框
privateJTextFieldtimeField=newJTextField();
//各城市时间显示框
privatestaticJTextAreajta=newJTextArea(10,5);
//农历显示区
privateJScrollPanejsp=newJScrollPane(jta);
privateJLabell=newJLabel("
花江小精灵:
亲!
你可以直接输入年月查询."
privateJLabellt=newJLabel();
privateJLabelld=newJLabel();
privateJLabellu=newJLabel("
农历和节气"
privateJLabelnull1=newJLabel();
privateintlastTime;
//privateStringlocalTime=null;
privateStrings=null;
privateSimpleDateFormatdateFormat=newSimpleDateFormat("
yyyy年MM月dd日hh时mm分ss秒"
publicwannianli(){
super("
花江日历过去仅留追忆,未来刚生憧憬,唯有坚守本心,把握今天"
//框架命名
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//窗口关闭函数
this.getContentPane().setLayout(newBorderLayout(9,10));
jta.setLineWrap(true);
//长度大于分配长度时候则换行
jta.setFont(newFont("
黑体"
Font.BOLD,16));
table.setBackground(Color.white);
table.setGridColor(Color.pink);
//星期之间的网格线是灰色的
table.setColumnSelectionAllowed(true);
//将table中的列设置为可选择的
table.setSelectionBackground(Color.pink);
//当选定某一天时背景颜色为黑色
table.setSelectionForeground(Color.GREEN);
table.setBackground(newColor(184,207,229));
//日期显示表格为浅蓝色
table.setFont(newFont("
Font.BOLD,24));
//日期数字字体格式
table.setRowHeight(26);
//表格的高度
table.addMouseListener(this);
//鼠标监听器、
lu.setFont(newFont("
Font.BOLD,22));
//农历标签格氏
jtfYear.addActionListener(this);
//可输入年份的文本框
//为各个按钮添加监听函数
bLastYear.addActionListener(this);
bNextYear.addActionListener(this);
bLastMonth.addActionListener(this);
bNextMonth.addActionListener(this);
timeBox.addItemListener(newTimeSelectedChangedListener());
//将按钮添加到Jpane上
p1.add(bLastYear);
p1.add(jtfYear);
//年份输入文本框
p1.add(bNextYear);
p1.add(bLastMonth);
p1.add(jtfMonth);
p1.add(bNextMonth);
p3.add(jsp,BorderLayout.SOUTH);
p3.add(lu,BorderLayout.CENTER);
p3.add(ld,BorderLayout.NORTH);
p4.add(lt);
p4.add(l);
p5.add(p4,BorderLayout.SOUTH);
p5.add(sp,BorderLayout.CENTER);
p5.add(p1,BorderLayout.NORTH);
p6.add(timeBox);
p6.add(null1);
p6.add(timeField);
p8.add(p2,BorderLayout.CENTER);
p8.add(p7,BorderLayout.SOUTH);
this.getContentPane().add(p3,BorderLayout.EAST);
this.getContentPane().add(p5,BorderLayout.CENTER);
this.getContentPane().add(p6,BorderLayout.SOUTH);
this.getContentPane().add(p8,BorderLayout.WEST);
String[]strDate=DateFormat.getDateInstance().format(newDate())
.split("
-"
//获取日期
cld.set(Integer.parseInt(strDate[0]),Integer.parseInt(strDate[1])-1,0);
showCalendar(Integer.parseInt(strDate[0]),
Integer.parseInt(strDate[1]),cld);
jtfMonth.setEditable(false);
//设置月份文本框为不可编辑
jtfYear.setText(strDate[0]);
jtfMonth.setText(strDate[1]);
this.showTextArea(strDate[2]);
ld.setFont(newFont("
新宋体"
newTimer(lt).start();
newTimeThread().start();
this.setBounds(200,200,700,350);
this.setResizable(false);
this.setVisible(true);
}
publicvoidshowCalendar(intlocalYear,intlocalMonth,Calendarcld)
{
intDays=getDaysOfMonth(localYear,localMonth)+cld.get(Calendar.DAY_OF_WEEK)-2;
Object[]ai=newObject[7];
lastTime=0;
for(inti=cld.get(Calendar.DAY_OF_WEEK)-1;
i<
=Days;
i++)
ai[i%7]=String.valueOf(i-(cld.get(Calendar.DAY_OF_WEEK)-2));
if(i%7==6)
dtm.addRow(ai);
ai=newObject[7];
lastTime++;
publicintgetDaysOfMonth(intYear,intMonth){//计算各月的天数
if(Month==1||Month==3||Month==5||Month==7||Month==8||Month==10||Month==12)
{
return31;
}
if(Month==4||Month==6||Month==9||Month==11)
return30;
if(Year%4==0&
&
Year%100!
=0||Year%400==0)//闰年
return29;
else{
return28;
publicvoidactionPerformed(ActionEvente)//从界面上获取年月数据
if(e.getSource()==jtfYear||e.getSource()==bLastYear||e.getSource()==bNextYear||
e.getSource()==bLastMonth||e.getSource()==bNextMonth)
intm,y;
try//控制输入的年份正确,异常控制
if(jtfYear.getText().length()!
=4)
thrownewNumberFormatException();
y=Integer.parseInt(jtfYear.getText());
m=Integer.parseInt(jtfMonth.getText());
catch(NumberFormatExceptionex)
JOptionPane.showMessageDialog(this,"
请输入4位0-9的数字!
"
年份有误"
JOptionPane.ERROR_MESSAGE);
return;
ld.setText("
没有选择日期"
for(inti=0;
lastTime+1;
i++){dtm.removeRow(0);
}
if(e.getSource()==bLastYear){jtfYear.setText(String.valueOf(--y));
if(e.getSource()==bNextYear){jtfYear.setText(String.valueOf(++y));
if(e.getSource()==bLastMonth)
if(m==1)
jtfYear.setText(String.valueOf(--y));
m=12;
jtfMonth.setText(String.valueOf(m));
else
jtfMonth.setText(String.valueOf(--m));
if(e.getSource()==bNextMonth)
if(m==12)
jtfYear.setText(String.valueOf(++y));
m=1;
jtfMonth.setText(String.valueOf(++m));
cld.set(y,m-1,0);
showCalendar(y,m,cld);
publicvoidmouseClicked(MouseEvente)
jta.setText(null);
intr=table.getSelectedRow();
intc=table.getSelectedColumn();
if(table.getValueAt(r,c)==null)
this.showTextArea(table.getValueAt(r,c));
privatevoidshowTextArea(Objectselected)
{
ld.setText(jtfYear.getText()+"
年"
+jtfMonth.getText()+"
月"
+selected+"
日"
publicstaticvoidmain(String[]args)
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
newwannianli();
jta.setText(today());
privatevoidupdateTimeText(StringtimeZoneId){
if(timeZoneId!
=null){
TimeZonetimeZone=TimeZone.getTimeZone(timeZoneId);
dateFormat.setTimeZone(timeZone);
Calendarcalendar=Calendar.getInstance();
calendar.setTimeZone(timeZone);
timeField.setText(dateFormat.format(calendar.getTime()));
}else{
timeField.setText(null);
}
privateclassTimeSelectedChangedListenerimplementsItemListener{
publicvoiditemStateChanged(ItemEvente){
if(e.getStateChange()==ItemEvent.SELECTED){
if(e.getItem()instanceofString){
s=e.getItem().toString();
privateclassTimeThreadextendsThread{
publicvoidrun(){
while(true){
updateTimeText(s);
try{
Thread.sleep(100);
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
classTimerextendsThread//显示系统时间
privateJLabellt;
privateSimpleDateFormatfy=newSimpleDateFormat("
Gyyyy.MM.ddHH:
mm:
ss"
publicTimer(JLabellt)
this.lt=lt;
publicvoidrun()
while(true){
try{
lt.setText(fy.format(newDate()));
this.sleep(500);
catch(InterruptedExceptionex)
{
ex.printStackTrace();
}
finalprivatestaticlong[]lunarInfo=newlong[]{0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,
0x056a0,0x09ad0,0x055d2,0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,
0x14977,0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,0x06566,
0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,0x0d4a0,0x1d8a6,0x0b550,
0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,
0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,
0x0d950,0x05b57,0x056a0,0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,
0x195a6,0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,0x04af5,
0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,0x0c960,0x0d954,0x0d4a0,
0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,
0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 万年历 源代码