1、JAVA课程设计写字留痕山东工商学院JAVA程序设计课程设计报告报告题目: JAVA写字留痕 所在院系: 计算机科学与技术学院 所在班级: 网络工程 姓 名: * 一设计思路 1. 作为日记本,为了保密性,设计了登陆界面,只有知道密码才能登陆到主界面,在主界面文本区,右键单击菜单可以进行密码的修改。如上图。2. 主界面用了两个Jpanel。左边的图片,日历等为一个JPanel;右边的文本框,JButton等为另一个JPanel。两个JPanel都是用的GridLayout,主界面的JFram用的是FlowLayout。如上图。3. 当更换日期,关闭窗口,点击保存,都能把当前日期的日记保存到磁盘
2、上。4. 当更换年月后,要先选择日期才能在文本区进行输入,否则会提示选择日期。JLable的显示内容会变为“请选择日期”。如下图。二实现代码1. 登陆界面的代码,只有输入正确的密码才能登陆日记程序。public class PassValidate extends JFrame implements ActionListener JPasswordField passfield; JLabel label,title1,title2,title3,title4; JButton yes,cancle; PassValidate() super(登录); setDefaultCloseOpera
3、tion(3); Toolkit tool=(); Image im=(); (im); 文本区JPanel的实现代码。public class FileEditor extends JPanel implements ActionListener JPanel buttonPanel; static JLabel title; JTextAreaWithMenu t; JButton save,delete,inport,outport; boolean dateexistence=true; int year; int mouth; int day; Hashtable data = ne
4、w Hashtable(); File file=new File(data); ObjectOutputStream hashOut; ObjectInputStream hashIn; String journalpass; rim().equals() (year)+(mouth)+(day); if(!().trim().equals() try (year)+(mouth)+(day),(); (data); (); indatasave); 主界面,把两个JPanel组成一个日记程序的主界面。public class JournalTest extends JFrame imple
5、ments WindowListener FileEditor fe; JournalTest() super(写字留痕); setDefaultCloseOperation(3); (this); Toolkit tool=(); Image im=(); (im); 日历,图片,Spinner的JPanel。public class YearMouth extends JPanel implements ChangeListener, MouseListener private int year; private int mouth; private int day; private JL
6、abel y1; private JLabel m1; private JLabel pic; JSpinner showyear; JSpinner showmouth; SpinnerNumberModel yearmodel,mouthmodel; JPanel spinner; JPanel arrnum; JTextField showDay; FileEditor fe; YearMouth(FileEditor fe) =fe; (new BorderLayout(5,5); ymInit(); etFont(new Font(TimesRomn,16); (titlei); a
7、rrangeNum(year,mouth,day); void arrangeNum(int year,int mouth,int day) int days=(year, mouth); Calendar c=(); days:+days); etText(+n); showDayi.setBackground(new Color(238,238,238); if(year, mouth, n)&day!=n) showDayi.setForeground; showDayi.setFont(new Font(TimesRomn,20); etFont(new Font(TimesRomn,
8、20); showDayi.setBackground; showDayi.setForeground; etForeground; ddMouseListener(this); for(int i=0;i42;i+) if(i=first+days) showDayi.setBackground(new Color(238,238,238); showDayi.setText(); etEditable(false); showDayi.setColumns(2); etFont(new Font(TimesRomn,16); etHorizontalAlignment; etForegro
9、und; showDayfirst+day-1.setBackground(new Color(238,238,238); showDayfirst+day-1.setFont(new Font(TimesRomn,20); etBackground(new Color(238,238,238); showDayfirst+day-1.setForeground; showDayfirst+day-1.setFont(new Font(TimesRomn,16); 弹出式菜单,右键单击可以更改文本的字体,登陆密码。public class FontPopup extends JPopupMen
10、u implements ActionListener String item; Font font; JMenuItem mt; JTextArea t; FontPopup(JTextArea t) =t; (new BevelBorder); item=new String标准仿宋,粗放行楷,规矩新魏,精致宋体,灵感隶书; font=new Font new Font(仿宋,0,18), new Font(华文行楷,0,30), new Font(华文新魏,0,22), new Font(宋体,0,14), new Font(隶书,0,20), ; for(int i=0;i;i+) m
11、t=new JMenuItem(itemi); (new Font(仿宋,0,14); (mt); (this); mt=new JMenuItem(修改密码); (new Font(仿宋,0,14); (mt); (this); Override public void actionPerformed(ActionEvent e) DateTime 类的实现,为程序提供系统日期处理方法。ublic class DateTime static Calendar cc=(); static int getYear() return ; static int getMouth() return +
12、1; static int getDay() return ; static int getMonDay(int year,int mouth) int days; switch(mouth) case 1: case 3: case 5: case 7: case 8: case 10: case 12:days=31;break; case 2: if(year%4=0&year%100!=0)|year%400=0) days=29; break; else days=28; break; default :days=30; return days; static boolean isW
13、enkend (int year,int mouth,int day) boolean value=false; Calendar c=(); (year,mouth-1,day); int first=; if(first=6|first=7) value=true; return value;8. 打开文件时的过滤,只显示txt文件。ublic class TxtFilter extends FileFilter Override public boolean accept(File f) oLowerCase().trim(); if(.txt)return true; return f
14、alse; Override public String getDescription() 导出日记文件的时候,输入密码为明文。如下图。2. spinner中的文本框,当输入非法内容的时候没有进行提示。如下图。3. 因为改变主界面窗口的大小不会是的各个组件的大小等比例的变大变小,所以把主界面设置为不可改变大小。如下图。4.未能实现自动创建磁盘日记保存文件。当文件缺失时,程序无法运行,并给出提示,如下图。5. 没有对密码文件进行加密,有记事本打开文件就可以看到明文的密码。 四 心得与收获通过这次的课程设计,不仅让自己使自己学的到课本知识得到了充分的运用,还极大的丰富了课本外的知识。通过上网,以及API 的查询来实现自己对程序的想法。如上述,程序实现的过程中还是有很多的不足需要改进。程序设计时并没有领悟java的面相对象的编程思想,所以在编写过程中程序显得很混乱,需要很多的改进。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1