展开全部

import java.util.Calendar;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.util.Hashtable;

public class CalendarPad extends JFrame implements MouseListener

{

int year,month,day;

Hashtable hashtable;

File file;

JTextField showDay[];

JLabel title[];

Calendar 日历;

int 星期几;

NotePad notepad=null;

Month 负责改变月;

Year 负责改变年;

String 星期[]={"星期日","星期一","星期二e69da5e887aa62616964757a686964616f31333262363733","星期三","星期四","星期五","星期六"};

JPanel leftPanel,rightPanel;

public CalendarPad(int year,int month,int day)

{

leftPanel=new JPanel();

JPanel leftCenter=new JPanel();

JPanel leftNorth=new JPanel();

leftCenter.setLayout(new GridLayout(7,7));

rightPanel=new JPanel();

this.year=year;

this.month=month;

this.day=day;

负责改变年=new Year(this);

负责改变年.setYear(year);

负责改变月=new Month(this);

负责改变月.setMonth(month);

title=new JLabel[7];

showDay=new JTextField[42];

for(int j=0;j<7;j++)

{

title[j]=new JLabel();

title[j].setText(星期[j]);

title[j].setBorder(BorderFactory.createRaisedBevelBorder());

leftCenter.add(title[j]);

}

title[0].setForeground(Color.red);

title[6].setForeground(Color.blue);

for(int i=0;i<42;i++)

{

showDay[i]=new JTextField();

showDay[i].addMouseListener(this);

showDay[i].setEditable(false);

leftCenter.add(showDay[i]);

}

日历=Calendar.getInstance();

Box box=Box.createHorizontalBox();

box.add(负责改变年);

box.add(负责改变月);

leftNorth.add(box);

leftPanel.setLayout(new BorderLayout());

leftPanel.add(leftNorth,BorderLayout.NORTH);

leftPanel.add(leftCenter,BorderLayout.CENTER);

leftPanel.add(new Label("请在年份输入框输入所查年份(负数表示公元前),并回车确定"),

BorderLayout.SOUTH) ;

leftPanel.validate();

Container con=getContentPane();

JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,

leftPanel,rightPanel);

con.add(split,BorderLayout.CENTER);

con.validate();

hashtable=new Hashtable();

file=new File("日历记事本.txt");

if(!file.exists())

{

try{

FileOutputStream out=new FileOutputStream(file);

ObjectOutputStream objectOut=new ObjectOutputStream(out);

objectOut.writeObject(hashtable);

objectOut.close();

out.close();

}

catch(IOException e)

{

}

}

notepad=new NotePad(this);

rightPanel.add(notepad);

设置日历牌(year,month);

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

setVisible(true);

setBounds(100,50,524,285);

validate();

}

public void 设置日历牌(int year,int month)

{

日历.set(year,month-1,1);

星期几=日历.get(Calendar.DAY_OF_WEEK)-1;

if(month==1||month==2||month==3||month==5||month==7

||month==8||month==10||month==12)

{

排列号码(星期几,31);

}

else if(month==4||month==6||month==9||month==11)

{

排列号码(星期几,30);

}

else if(month==2)

{

if((year%4==0&&year%100!=0)||(year%400==0))

{

排列号码(星期几,29);

}

else

{

排列号码(星期几,28);

}

}

}

public void 排列号码(int 星期几,int 月天数)

{

for(int i=星期几,n=1;i

{

showDay[i].setText(""+n);

if(n==day)

{

showDay[i].setForeground(Color.green);

showDay[i].setFont(new Font("TimesRoman",Font.BOLD,20));

}

else

{

showDay[i].setFont(new Font("TimesRoman",Font.BOLD,12));

showDay[i].setForeground(Color.black);

}

if(i%7==6)

{

showDay[i].setForeground(Color.blue);

}

if(i%7==0)

{

showDay[i].setForeground(Color.red);

}

n++;

}

for(int i=0;i

{

showDay[i].setText("");

}

for(int i=星期几+月天数;i<42;i++)

{

showDay[i].setText("");

}

}

public int getYear()

{

return year;

}

public void setYear(int y)

{

year=y;

notepad.setYear(year);

}

public int getMonth()

{

return month;

}

public void setMonth(int m)

{

month=m;

notepad.setMonth(month);

}

public int getDay()

{

return day;

}

public void setDay(int d)

{

day=d;

notepad.setDay(day);

}

public Hashtable getHashtable()

{

return hashtable;

}

public File getFile()

{

return file;

}

public void mousePressed(MouseEvent e)

{

JTextField source=(JTextField)e.getSource();

try{

day=Integer.parseInt(source.getText());

notepad.setDay(day);

notepad.设置信息条(year,month,day);

notepad.设置文本区(null);

notepad.获取日志内容(year,month,day);

}

catch(Exception ee)

{

}

}

public void mouseClicked(MouseEvent e)

{

}

public void mouseReleased(MouseEvent e)

{

}

public void mouseEntered(MouseEvent e)

{

}

public void mouseExited(MouseEvent e)

{

}

public static void main(String args[])

{

Calendar calendar=Calendar.getInstance();

int y=calendar.get(Calendar.YEAR);

int m=calendar.get(Calendar.MONTH)+1;

int d=calendar.get(Calendar.DAY_OF_MONTH);

new CalendarPad(y,m,d);

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Month extends Box implements ActionListener

{

int month;

JTextField showMonth=null;

JButton 下月,上月;

CalendarPad 日历;

public Month(CalendarPad 日历)

{

super(BoxLayout.X_AXIS);

this.日历=日历;

showMonth=new JTextField(2);

month=日历.getMonth();

showMonth.setEditable(false);

showMonth.setForeground(Color.blue);

showMonth.setFont(new Font("TimesRomn",Font.BOLD,16));

下月=new JButton("下月");

上月=new JButton("上月");

add(上月);

add(showMonth);

add(下月);

上月.addActionListener(this);

下月.addActionListener(this);

showMonth.setText(""+month);

}

public void setMonth(int month)

{

if(month<=12&&month>=1)

{

this.month=month;

}

else

{

this.month=1;

}

showMonth.setText(""+month);

}

public int getMonth()

{

return month;

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==上月)

{

if(month>=2)

{

month=month-1;

日历.setMonth(month);

日历.设置日历牌(日历.getYear(),month);

}

else if(month==1)

{

month=12;

日历.setMonth(month);

日历.设置日历牌(日历.getYear(),month);

}

showMonth.setText(""+month);

}

else if(e.getSource()==下月)

{

if(month<12)

{

month=month+1;

日历.setMonth(month);

日历.设置日历牌(日历.getYear(),month);

}

else if(month==12)

{

month=1;

日历.setMonth(month);

日历.设置日历牌(日历.getYear(),month);

}

showMonth.setText(""+month);

}

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

import javax.swing.event.*;

import java.io.*;

public class NotePad extends JPanel implements ActionListener

{

JTextArea text;

JButton 保存日志,删除日志;

Hashtable table;

JLabel 信息条;

int year,month,day;

File file;

CalendarPad calendar;

public NotePad(CalendarPad calendar)

{

this.calendar=calendar;

year=calendar.getYear();

month=calendar.getMonth();

day=calendar.getDay();;

table=calendar.getHashtable();

file=calendar.getFile();

信息条=new JLabel(""+year+"年"+month+"月"+day+"日",JLabel.CENTER);

信息条.setFont(new Font("TimesRoman",Font.BOLD,16));

信息条.setForeground(Color.blue);

text=new JTextArea(10,10);

保存日志=new JButton("保存日志") ;

删除日志=new JButton("删除日志") ;

保存日志.addActionListener(this);

删除日志.addActionListener(this);

setLayout(new BorderLayout());

JPanel pSouth=new JPanel();

add(信息条,BorderLayout.NORTH);

pSouth.add(保存日志);

pSouth.add(删除日志);

add(pSouth,BorderLayout.SOUTH);

add(new JScrollPane(text),BorderLayout.CENTER);

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==保存日志)

{

保存日志(year,month,day);

}

else if(e.getSource()==删除日志)

{

删除日志(year,month,day);

}

}

public void setYear(int year)

{

this.year=year;

}

public int getYear()

{

return year;

}

public void setMonth(int month)

{

this.month=month;

}

public int getMonth()

{

return month;

}

public void setDay(int day)

{

this.day=day;

}

public int getDay()

{

return day;

}

public void 设置信息条(int year,int month,int day)

{

信息条.setText(""+year+"年"+month+"月"+day+"日");

}

public void 设置文本区(String s)

{

text.setText(s);

}

public void 获取日志内容(int year,int month,int day)

{

String key=""+year+""+month+""+day;

try

{

FileInputStream inOne=new FileInputStream(file);

ObjectInputStream inTwo=new ObjectInputStream(inOne);

table=(Hashtable)inTwo.readObject();

inOne.close();

inTwo.close();

}

catch(Exception ee)

{

}

if(table.containsKey(key))

{

String m=""+year+"年"+month+"月"+day+"这一天有日志记载,想看吗?";

int ok=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE);

if(ok==JOptionPane.YES_OPTION)

{

text.setText((String)table.get(key));

}

else

{

text.setText("");

}

}

else

{

text.setText("无记录");

}

}

public void 保存日志(int year,int month,int day)

{

String 日志内容=text.getText();

String key=""+year+""+month+""+day;

String m=""+year+"年"+month+"月"+day+"保存日志吗?";

int ok=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE);

if(ok==JOptionPane.YES_OPTION)

{

try

{

FileInputStream inOne=new FileInputStream(file);

ObjectInputStream inTwo=new ObjectInputStream(inOne);

table=(Hashtable)inTwo.readObject();

inOne.close();

inTwo.close();

table.put(key,日志内容);

FileOutputStream out=new FileOutputStream(file);

ObjectOutputStream objectOut=new ObjectOutputStream(out);

objectOut.writeObject(table);

objectOut.close();

out.close();

}

catch(Exception ee)

{

}

}

}

public void 删除日志(int year,int month,int day)

{

String key=""+year+""+month+""+day;

if(table.containsKey(key))

{

String m="删除"+year+"年"+month+"月"+day+"日的日志吗?";

int ok=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE);

if(ok==JOptionPane.YES_OPTION)

{

try

{

FileInputStream inOne=new FileInputStream(file);

ObjectInputStream inTwo=new ObjectInputStream(inOne);

table=(Hashtable)inTwo.readObject();

inOne.close();

inTwo.close();

table.remove(key);

FileOutputStream out=new FileOutputStream(file);

ObjectOutputStream objectOut=new ObjectOutputStream(out);

objectOut.writeObject(table);

objectOut.close();

out.close();

text.setText(null);

}

catch(Exception ee)

{

}

}

}

else

{

String m=""+year+"年"+month+"月"+day+"无日志记录";

JOptionPane.showMessageDialog(this,m,"提示",JOptionPane.WARNING_MESSAGE);

}

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Year extends Box implements ActionListener

{

int year;

JTextField showYear=null;

JButton 明年,去年;

CalendarPad 日历;

public Year(CalendarPad 日历)

{

super(BoxLayout.X_AXIS);

showYear=new JTextField(4);

showYear.setForeground(Color.blue);

showYear.setFont(new Font("TimesRomn",Font.BOLD,14));

this.日历=日历;

year=日历.getYear();

明年=new JButton("下年");

去年=new JButton("上年");

add(去年);

add(showYear);

add(明年);

showYear.addActionListener(this);

去年.addActionListener(this);

明年.addActionListener(this);

}

public void setYear(int year)

{

this.year=year;

showYear.setText(""+year);

}

public int getYear()

{

return year;

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==去年)

{

year=year-1;

showYear.setText(""+year);

日历.setYear(year);

日历.设置日历牌(year,日历.getMonth());

}

else if(e.getSource()==明年)

{

year=year+1;

showYear.setText(""+year);

日历.setYear(year);

日历.设置日历牌(year,日历.getMonth());

}

else if(e.getSource()==showYear)

{

try

{

year=Integer.parseInt(showYear.getText());

showYear.setText(""+year);

日历.setYear(year);

日历.设置日历牌(year,日历.getMonth());

}

catch(NumberFormatException ee)

{

showYear.setText(""+year);

日历.setYear(year);

日历.设置日历牌(year,日历.getMonth());

}

}

}

}

希望能帮到你,以上分为4个类。。分割线以标注了

参考资料:

学校给的源代码。

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

日历记事本java代码_急需日历记事本JAVA源代码相关推荐

  1. 最牛逼的java代码_分享史上java最牛逼,最简短的代码

    确实是12306的最核心代码呀 alert("当前访问用户过多,请稍后重试!"); 确实牛 public class Test{ static{ System.out.printl ...

  2. 最牛逼的java代码_分享史上java最牛逼 最简短的代码-Go语言中文社区

    也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 确实是12306的最核心代码呀 确实牛public class Test{    static{       System.ou ...

  3. 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍

    Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...

  4. (1 24) 3 java代码_算24点 java代码

    展开全部 C的代码要吗?我对java不是e69da5e6ba903231313335323631343130323136353331333264653337很熟,我试着用java写下吧.给我点时间! ...

  5. 四则运算游戏 java代码_四则运算程序(java基于控制台)

    一.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数 ...

  6. 记忆测试系统java代码_记忆测试系统-JAVA实现

    //主类MemoryGame import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; i ...

  7. 一个类的java代码_求一段java代码,定义一个类

    你看看这样行不行:public class Test{ private String str; public Test(){} public Test(String str){ this.str =  ...

  8. 给定下面的java代码_则运行_会产生类型的异常_JavaSE_笔试题_单选选择题

    JavaSE_笔试题_单选选择题1 1. 下面哪一种描述是正确的()? A:abstract修饰符可修饰字段.方法和类. B:抽象方法的body部分必须用一对大括号{}包住. C:声明抽象方法,大括号 ...

  9. java二进制转十进制代码_二进制转十进制java代码

    二进制转十进制java代码 Java有两种方法可以将二进制数转换为十进制数: 1)使用Integer类的Integer.parseInt()方法. 2)自己编写转换逻辑. 方法1:使用Integer. ...

最新文章

  1. keil添加hal库_使用Keil uVision5创建stm32 hal库项目过程
  2. python—操作MySQL增加数据
  3. Python基础入门:高效的集合操作
  4. 使用QT-QSerialport打不开串口的原因
  5. Python学习笔记之头部文件
  6. 谈谈自己对投影、SVD和傅里叶变换的理解
  7. ES6中的const命令【转】
  8. 阿里云郑晓:浅谈GPU虚拟化技术(第一章)
  9. Netgear WNR2000v3刷固件记
  10. Pyts入门之时间序列的分解---奇异谱分析(七)
  11. Git diffmerge 工具的配置及问题解决
  12. python使用qq邮箱发邮件
  13. 爬取京东商品信息出现登陆页面的解决
  14. 文件传输协议的服务器
  15. VOT(Visual Object Tracking)评价指标综述
  16. Python 零基础入门到实战(一)笔记:内置对象、浅拷贝、深拷贝、计算圆面积、凯撒密码、英文大小写转换、输入国家打印出国家名和首都、输入数字英文输出、统计句子中的字母数量、猜随机数
  17. 红旗linux操作系统怎样,红旗linux操作系统应该怎么用
  18. NetFIlter详解
  19. 股票分时数据HTML,股票数据(五档分笔分时成交、逐笔、逐单全息)简介
  20. CorelDRAW 缩略图简单解决办法

热门文章

  1. MongoDB学习笔记(三)使用Spring Data操作MongoDB
  2. each 数据获取attr_我背着CSDN偷偷记录了大半年我博客数据
  3. Linux服务器后台运行jar包
  4. 最全的时间类解析。 SimpleDateFormat + Date() 和 DateTimeFormatter + LocalDate()的区别与使用场景
  5. 【答案放在最后,看题看不到答案】2019年上半年软件设计师 上午选择题
  6. @CachePut(与@Cacheable的差异)@CacheEvict
  7. sublime python插件_sublime text 3 + python配置,完整搭建及常用插件安装
  8. 传统公司部署OpenStack(t版)简易介绍(八)——Dashboard模块部署
  9. mysql 二进制转字符串_MySql字符转义 | 学步园
  10. 如何设计一个优秀的向导式界面(Wizard)