java电子日记本代码及运行结果.docx
- 文档编号:3185460
- 上传时间:2022-11-19
- 格式:DOCX
- 页数:15
- 大小:271.90KB
java电子日记本代码及运行结果.docx
《java电子日记本代码及运行结果.docx》由会员分享,可在线阅读,更多相关《java电子日记本代码及运行结果.docx(15页珍藏版)》请在冰豆网上搜索。
java电子日记本代码及运行结果
//程序主类
publicclassDiary
{
publicstaticvoidmain(Stringargs[])throwsException
{
newLoginWindow();
Rememberwin=newRemember();
win.pack();
}
}
importjavax.swing.*;
importjavax.swing.tree.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.event.*;
importjava.io.*;
importjava.util.*;
//日记本类
classRememberextendsJFrameimplementsTreeSelectionListener,ActionListener
{
privatestaticfinalStringDiaryRoot=null;
JTreetree=null;
inti=0,r=255,g=255,b=255;
JTextAreatext=newJTextArea("",20,50);
DefaultMutableTreeNoderoot;
DefaultMutableTreeNodemonth[]=newDefaultMutableTreeNode[13];
JButtonb_save=newJButton("保存"),
b_fontCommen=newJButton("还原"),
b_fontBig=newJButton("大字"),
b_fontRed=newJButton("红色"),
b_fontBlue=newJButton("蓝色"),
b_bg=newJButton("背景");
Remember()
{
Containercon=getContentPane();
DefaultMutableTreeNoderoot=newDefaultMutableTreeNode("日记本");
//设置以月份为节点的树
for(i=1;i<=12;i++)
{
month[i]=newDefaultMutableTreeNode(""+i+"月");
root.add(month[i]);
}
//设置不同月份的节点
for(i=1;i<=12;i++)
{
//处理有31天的月份
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
for(intj=1;j<=31;j++){
Strings1=month[i].toString();
Strings2=j+"日.txt";
Filefile=newFile(DiaryRoot+s1+s2);
//如果这一天写了日记则相应节点后面添加一个“*”来标志
if(file.exists()==true)month[i].add(newDefaultMutableTreeNode(j+"日*"));
elsemonth[i].add(newDefaultMutableTreeNode(j+"日"));
}
}
//处理有30天的月份
elseif(i==4||i==6||i==9||i==11)
{
for(intj=1;j<=30;j++){
Strings1=month[i].toString();
Strings2=j+"日.txt";
Filefile=newFile(DiaryRoot+s1+s2);
//如果这一天写了日记则相应节点后面添加一个“*”来标志
if(file.exists()==true)month[i].add(newDefaultMutableTreeNode(j+"日*"));
elsemonth[i].add(newDefaultMutableTreeNode(j+"日"));
}
}
//处理有28天的月份
else
{
for(intj=1;j<=28;j++){
Strings1=month[i].toString();
Strings2=j+"日.txt";
Filefile=newFile(DiaryRoot+s1+s2);
//如果这一天写了日记则相应节点后面添加一个“*”来标志
if(file.exists()==true)month[i].add(newDefaultMutableTreeNode(j+"日*"));
elsemonth[i].add(newDefaultMutableTreeNode(j+"日"));
}
}
}
//设置监听
b_save.addActionListener(this);
b_fontRed.addActionListener(this);
b_fontCommen.addActionListener(this);
b_fontBig.addActionListener(this);
b_fontBlue.addActionListener(this);
b_bg.addActionListener(this);
//创建树及其面板
tree=newJTree(root);
JPanelp=newJPanel();
//设置边界布局
p.setLayout(newBorderLayout());
JScrollPanescrollpane_1=newJScrollPane(text);
//带滚动条的面板放置到中间,可以占据最大空间位置
p.add(scrollpane_1,BorderLayout.CENTER);
//设置面板,放置"保存"和"删除"按钮等按钮,面板放在上部
JPanelp_1=newJPanel();
p_1.add(b_save);
p_1.add(b_fontCommen);
p_1.add(b_fontBig);
p_1.add(b_fontRed);
p_1.add(b_fontBlue);
p_1.add(b_bg);
//设置布局
p.add(p_1,BorderLayout.NORTH);
JScrollPanescrollpane_2=newJScrollPane(tree);
JSplitPanesplitpane=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,scrollpane_2,p);
tree.addTreeSelectionListener(this);
con.add(splitpane);
//设置窗体适配器,关闭功能
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}});
setVisible(true);
setBounds(200,150,500,600);
}
//处理树节点事件
publicvoidvalueChanged(TreeSelectionEvente)
{
//清空文本区中的内容
text.setText("");
if(e.getSource()==tree)
{
//定义被选中的节点
DefaultMutableTreeNodenode=
(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
//如果是叶节点,则可以对文件进行操作
if(node.isLeaf())
{
//日记以“-月-日.txt”的形式存储,所以要消除“*”号的影响
Stringstr=node.toString();
str=str.substring(0,str.length()-1);
for(inti=0;i<=12;i++)
{
if(node.getParent()==month[i])
{
try{
Stringtemp=null;
//打开以节点(“*”号影响已经消除)所定义的文本为文件名的文件
Filef=newFile(DiaryRoot+node.getParent().toString()+str+".txt");
//建立文本文件输入流,读取文件
FileReaderfile=newFileReader(f);
BufferedReaderin=newBufferedReader(file);
//将读到的文件内容添加到文本区中,按行读入
while((temp=in.readLine())!
=null)
text.append(temp+'\n');
file.close();
in.close();
}
catch(FileNotFoundExceptione1){}
catch(IOExceptione1){}
}
}
}
}
}
//处理按钮事件
publicvoidactionPerformed(ActionEvente)
{
//处理"保存"按钮的事件
if(e.getSource()==b_save)
{
DefaultMutableTreeNodenode=
(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
Stringstr=node.toString();
//保存文件时去除“*”号的影响
str=str.replace("*","");
//如果是叶节点,则可以对文件进行操作
if(node.isLeaf())
{
//保存文件
try{
//建立以节点所定义的文本为文件名的文件
Filef=newFile(DiaryRoot+node.getParent().toString()+str+".txt");
//建立文本文件输出流
FileWritertofile=newFileWriter(f);
BufferedWriterout=newBufferedWriter(tofile);
//将文本区中的内容写到文件缓冲区
out.write(text.getText(),0,(text.getText()).length());
//将缓冲区中的内容写到文件
out.flush();
tofile.close();
out.close();
}
catch(FileNotFoundExceptione1){}
catch(IOExceptione1){}
}
}
//处理"大字"按钮事件
elseif(e.getSource()==b_fontBig)
{
t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 电子 日记本 代码 运行 结果