当前位置:首页 > java日历记事本(无敌版带提醒功能调整时区更换图片铃声功能)
遇到的问题2:
记事本功能如何实现,如果做到保存用户输入的记事,并且还能有保存日志功能和删除日志功能?
解决:
//读取记录日志的文件;
FileInputStream inOne=new FileInputStream(file); ObjectInputStream inTwo=new ObjectInputStream(inOne); table=(Hashtable
//把读到的内容写到指定存储日志的文件中;
FileInputStream inOne=new FileInputStream(file); ObjectInputStream inTwo=new ObjectInputStream(inOne); table=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close();
table.put(key,logContent);//注意key和logContent是对应的映射; FileOutputStream out=new FileOutputStream(file);
ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(table); //把内容写进文件中; objectOut.close(); out.close();
//删除当前时间对应的日志;
FileInputStream inOne=new FileInputStream(file); ObjectInputStream inTwo=new ObjectInputStream(inOne); table=(Hashtable
table.remove(key);//移除; FileOutputStream out=new FileOutputStream(file);
ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(table); objectOut.close(); out.close();
text.setText(null);//清空显示的文档;
遇到的问题3:
如何实现更改图片背景的功能?我设置了让用户选择图片,但是发现不起作用
解决:
经过调试我发现,原来我只是设置了一个模态对话框,让用户可以选择文件,但是选择的文件并没有真正利用起来,于是我对文件进行了操作,让获取的文件在指定区域显示便可以了。
遇到的问题4:
钟表表盘和电子数码显示不一致,发现时钟总是比表盘慢了一秒,如图,秒针没有对齐12点刻度
解决:
后来发现自己的问题在于,我的时钟获取的时间是使用变量hour,minute,second来设置的,而电子时钟的显示是使用即时获取时间
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND) ;
因此我做了相应的修改取消了使用hour,minute,second等变量保存的方式,而是都改为即时获取。
遇到的问题5:
如何做到修改时区,并且我还想实现尽可能多的时区
解决:
我百度了一下方法告诉我是TimeZone.getTimeZone(CalendarPad.timeArea),开始使用方法不对没有正确显示,后来发现该语句要这样使用:
Calendar calendar = new
GregorianCalendar(TimeZone.getTimeZone(CalendarPad.timeArea)); CalendarPad.timeArea是我设置的一个成员变量,可以让用户方便的修改不同时区,但是问题又来了,如何知道不同时区的准确名称呢?因为不同时区的名称很复杂,比如Europe/Paris是罗马时间也可以表示法国时间,这些怎么知道呢,通过百度我发现了在JDK/jre/lib文件夹下有一个tzmappings文件,储存了各个时区,然后我给每个时区设置一个编号,让用户输入编号而不是输入全称,就可以让用户方便快捷的设置时区。
五、 模拟运行
共分享92篇相关文档