《2022年日记本java编 .pdf》由会员分享,可在线阅读,更多相关《2022年日记本java编 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、/*程序文件名称:AppTree.java*功能:日历记事本*/import javax.swing.*;import javax.swing.tree.*;import java.awt.*;import java.awt.event.*;import javax.swing.event.*;import java.io.*;class Remember extends JFrame implements TreeSelectionListener,ActionListener JTree tree=null;int i=0;JTextArea text=new JTextArea(,20,
2、20);DefaultMutableTreeNode root;DefaultMutableTreeNode month=new DefaultMutableTreeNode13;JButton b_save=new JButton(保存日志),b_del=new JButton(删除日志);/构造方法,完成界面及树结点初始化 Remember()Container con=getContentPane();DefaultMutableTreeNode root=new DefaultMutableTreeNode(心情日记本);/设置以月份为节点的树 for(i=1;i=12;i+)mont
3、hi=new DefaultMutableTreeNode(+i+月);root.add(monthi);for(i=1;i=12;i+)/处理有 31 天的月份 if(i=1|i=3|i=5|i=7|i=8|i=10|i=12)for(int j=1;j=31;j+)monthi.add(new DefaultMutableTreeNode(j+日);/处理有 30 天的月份 else if(i=4|i=6|i=9|i=11)for(int j=1;j=30;j+)monthi.add(new DefaultMutableTreeNode(j+日);名师资料总结-精品资料欢迎下载-名师精心整
4、理-第 1 页,共 5 页 -/处理有 28 天的月份 else for(int j=1;j=28;j+)monthi.add(new DefaultMutableTreeNode(j+日);/设置监听 b_save.addActionListener(this);b_del.addActionListener(this);tree=new JTree(root);JPanel p=new JPanel();/设置边界布局 p.setLayout(new BorderLayout();JScrollPane scrollpane_1=new JScrollPane(text);/带滚动条的面板
5、放置到中间,可以占据最大空间位置 p.add(scrollpane_1,BorderLayout.CENTER);/设置面板,放置保存 和删除 按钮,面板安放在上部 JPanel p_1=new JPanel();p_1.add(b_save);p_1.add(b_del);p.add(p_1,BorderLayout.NORTH);JScrollPane scrollpane_2=new JScrollPane(tree);JSplitPane splitpane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,scrollpane_2,p);
6、tree.addTreeSelectionListener(this);con.add(splitpane);/设置窗体适配器,关闭功能 addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););setVisible(true);setBounds(70,80,200,300);/处理树节点事件 public void valueChanged(TreeSelectionEvent e)/清空文本区中的内容 text.setText();if(e.getSource
7、()=tree)/定义被选中的节点名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();/如果是叶节点,则可以对文件进行操作 if(node.isLeaf()String str=node.toString();for(int i=0;i=12;i+)if(node.getParent()=monthi)try String temp=null;(见教材)/将读到的文件内容添加到文本区中 while(t
8、emp=in.readLine()!=null)text.append(temp+n);file.close();in.close();catch(FileNotFoundException e1)catch(IOException e1)public void actionPerformed(ActionEvent e)/处理 保存 按钮的事件 if(e.getSource()=b_save)DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();String str=no
9、de.toString();/如果是叶节点,则可以对文件进行操作 if(node.isLeaf()/保存文件 try /建立以节点所定义的文本为文件名的文件 File f=new File(node.getParent().toString()+str+.txt);/建立文本文件输出流 FileWriter tofile=new FileWriter(f);名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -BufferedWriter out=new BufferedWriter(tofile);/将文本区中的内容写到文件缓冲区 out.write(text.getTex
10、t(),0,(text.getText().length();/将缓冲区中的内容写到文件 out.flush();tofile.close();out.close();catch(FileNotFoundException e1)catch(IOException e1)/处理点出 删除 按钮的事件 else if(e.getSource()=b_del)DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();String str=node.toString();if(nod
11、e.isLeaf()try /把删除命令写到一个批处理文件中 File f=new File(node.getParent().toString()+str+.txt);FileWriter tofile=new FileWriter(gxy.bat);BufferedWriter out=new BufferedWriter(tofile);String temp1=del+f.getAbsoluteFile().toString();out.write(temp1,0,temp1.length();out.newLine();out.flush();tofile.close();out.c
12、lose();catch(IOException e1)/调用执行删除文件的方法 del();/删除文件 void del()/调用外部命令执行批处理程序 try 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -Runtime ce=Runtime.getRuntime();ce.exec(gxy.bat);catch(IOException e1)public class AppTree public static void main(String args)Remember win=new Remember();win.pack();名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -