`
旷世cC
  • 浏览: 25630 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

树形菜单记事本

 
阅读更多
引用

import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

class Remember extends JFrame implements TreeSelectionListener,ActionListener
{
JTree tree=null;
JTextArea text=new JTextArea(20,20);
int i=0;
DefaultMutableTreeNode root;
JButton b_save=new JButton("保存日记");
JButton b_del=new JButton("删除日记");
DefaultMutableTreeNode month[]=new DefaultMutableTreeNode[13];


Remember()
{
  Container con=getContentPane();
  DefaultMutableTreeNode root=new DefaultMutableTreeNode("日历记事本");
  for(i=1;i<=12;i++)
  {
   month=new DefaultMutableTreeNode(""+i+"月");
   root.add(month);
  }
  for(i=1;i<=12;i++)
  {
   if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
   {
    for(int j=1;j<=31;j++)
    month.add(new DefaultMutableTreeNode(j+"日"));
   }
   else if(i==4||i==6||i==9||i==11)
   {
    for(int j=1;j<=30;j++)
     month.add(new DefaultMutableTreeNode(j+"日"));
   }
   else
   {
    for (int j=1;j<=28;j++)
     month.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);
  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);
  tree.addTreeSelectionListener(this);
  con.add(splitpane);
  setVisible(true);
  setBounds(70,80,460,320);
  setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void valueChanged(TreeSelectionEvent e)
{
  text.setText(null);
  if(e.getSource()==tree)
  {
   DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
         if(node.isLeaf())
         {
          String str=node.toString();
          for(int i=0;i<=12;i++)
          {
           if(node.getParent()==month)
           {
            try{
             String temp=null;
             File f=new File(node.getParent().toString()+str+".txt");
             FileReader file=new FileReader(f);
             BufferedReader in=new BufferedReader(file);
             while((temp=in.readLine())!=null)
               text.append(temp+'\n');
             file.close();
             in.close();
            }
            catch(Exception el){}
           }
          }
         }
  }
}
public void actionPerformed(ActionEvent e)
{
  if(e.getSource()==b_save)
  {
   DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
   String str=node.toString();
   if(node.isLeaf())
   {
    try
    {
     File f=new File(node.getParent().toString()+str+".txt");
     FileWriter tofile=new FileWriter(f);
     BufferedWriter out=new BufferedWriter(tofile);
     out.write(text.getText(),0,(text.getText()).length());
     out.flush();
     tofile.close();
     out.close();
    }
    catch(Exception el){}
   }
  }
  else if(e.getSource()==b_del)
  {
   DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
   String str=node.toString();
   if(node.isLeaf())
   {
    File f=new File(node.getParent().toString()+str+".txt");
    f.delete();
   }
  }
}
}


public class Example17_13 {

public static void main(String[] args) {
  // TODO Auto-generated method stub
        Remember win=new Remember();
        win.validate();
}
}




树状的记事本,可以实现每天的记事与日记,树状查找与删除!
分享到:
评论

相关推荐

    java记事本的设计与实现

    AWT提供了基本的GUI组件,例如按钮、文本框、标签等,而Swing则提供了更多的高级GUI组件,例如树形菜单、表格、树形表格等。在记事本系统中,我们可以使用AWT和Swing组件来设计和实现用户界面,以提供更加友好的用户...

    swing记事本

    9. **Swing工具包的其他特性**:Swing还提供了许多其他组件和特性,如JTable(表格)、JTree(树形结构)和JTabbedPane(选项卡面板),以及自定义组件的能力,如使用JSplitPane分隔视图。 通过编写这样一个Swing...

    个人记事本源码

    8. **FileTreeNode.cs**:文件树节点类可能用于实现文件系统浏览功能,用户可以通过树形结构查看和选择要打开的文本文件。 9. **MyEnum.cs**:这个文件可能定义了一些自定义的枚举类型,枚举在编程中常用于表示一组...

    crm客户关系管理系统源码

    系统中树形菜单就是使用DevExpress.XtraNavBar控件。 系统结构: 资料管理 区域信息管理 客户信息管理 竞争对手管理 我方信息管理 基本信息管理 员工信息管理 货物信息管理 重大历史进程管理 统计分析 客户...

    crm客户关系管理系统源码20110803

    系统中树形菜单就是使用DevExpress.XtraNavBar控件。 系统结构: 资料管理 区域信息管理 客户信息管理 竞争对手管理 我方信息管理 基本信息管理 员工信息管理 货物信息管理 重大历史进程管理 统计分析 客户...

    JAVA记事本【附源代码】

    `ElementTreePanel.java`可能是用来实现文件或文件夹的树形结构视图。在Java中,我们可以使用JTree组件来展示这样的结构。这个类可能包含了对JTree的定制,包括自定义模型(DefaultTreeModel)、节点对象...

    VC6.0数据库程序范例:联系人管理(通讯录)程序.rar

    一款由VC 6.0编写的数据库程序范例,并附有access数据库,是一个联系人管理(通讯录)程序,里面有带图标的导航菜单、展开折叠的树形菜单,还有数据库的各种操作,实现的模块有:用户管理、通讯管理、系统帮助等,...

    窗体界面程序设计(含数据结构)

    标题提及的"查找与替换"、"启动界面程序"、"日立记事本"、"文件目录树"以及"最简单的树形结构"都是窗体界面程序设计中的关键概念。 首先,让我们来看“查找与替换”功能。在大多数应用程序中,用户可能需要搜索文本...

    .net 架构程序设计作业基于 winform 的简单的文件浏览器程序

    •窗口分左右结构,包含菜单、工具栏、树形视图和列表; •展示 c: 盘及其下所有文件夹,点击左边树形视图中的文件夹,右侧列表可显示该文件夹中的子文件夹和文件; •对于 exe 文件,可以双击运行;对于 txt 文件,...

    Win8.1系统右键菜单怎么添加“管理员取得所有权”选项.docx

    在 Windows 系统中,注册表键值是以树形结构组织的,每个键值都有其特定的名称和值。在我们的例子中,我们需要添加三个注册表键值:HKEY_CLASSES_ROOT\*shellrunas、HKEY_CLASSES_ROOT\*shellrunascommand 和 HKEY_...

    全国计算机等级考试一级题库2.pdf

    5. 资源管理器左部内容:Windows 98的资源管理器左部通常显示系统的树形文件夹结构,选项B正确。 6. 清除“文档”菜单:要清除“开始”菜单下“文档”菜单的内容,需要打开“任务栏属性”对话框进行设置。 7. ...

    模拟Windows 资源管理器 第二版

    此项目的核心技术在于使用递归算法来构建和展示文件系统的树形结构,以及利用ListView控件来显示文件和目录的详细信息。在设计上,它遵循了Windows资源管理器的左右两栏布局,左栏呈现目录树,右栏展示选定目录下的...

    U盘完全预防病毒入侵电脑的技巧.docx

    E打开资源治理器后,一定通过左侧栏的树形目录打开可移动设备!(要养成这样的良好习惯) 2. 假如盘内有来路不明的文件,尤其是文件名比较诱惑人的文件,必须多加小心;需要非凡提示的是,不要看到图标是文件夹就...

    2022年山西省银行招聘考试会计基础:复式记账考试题共享.pdf

    20. 树形结构:在树形结构中,每个结点有一个直接前驱,可以有零个或多个直接后继。 21. 打印预览:在打印预览模式下,通常点击“关闭”按钮可以返回到编辑文件。 22. Word文件打开:在Word中,直接双击最近使用的...

    计算机操作员之Windows 2000/XP操作系统的应用.docx

    在“资源管理器”中,用户可以看到电脑上的所有文件和文件夹,以树形结构展示,方便查找和打开文件。 7. **“我的电脑”和“资源管理器”**:“我的电脑”提供了一个查看和访问电脑上所有驱动器和设备的界面,而...

    操作系统应用[总结].pdf

    从资源管理器启动不正确的方法是尝试在文件夹树窗口中直接双击,因为这可能会打开文件而不是启动程序。 以上就是针对"操作系统应用"总结中所涉及的Windows操作系统基础知识的详细解析,涵盖了文件管理、附件工具、...

    windows基础40题(一).pdf

    Windows 基础知识 40 题详解 本资源摘要信息将对 Windows 基础知识进行详细的解释和分析,涵盖了 Windows 窗口概念、应用程序窗口、...解释:在文件系统的树形目录结构中,从根目录到任何数据文件,其路径都是唯一的。

    通讯调试工具,支持:串口通讯、串口代理、TCP、UDP、Telnet、Ping、TFtp等通讯测试

    1、本工具支持固定预定义命令,命令可以进行分组,由树形控件管理。点击“命令编辑”即可编辑预定义命令, 编辑保存后点击“命令更新”按钮,新命令即显示在左侧“命令树”中,预定义命令支持ASCII码字符串格式 、...

    计算机应用基础第2章PPT课件.pptx

    在Windows XP中,文件和文件夹的命名有一定的规则,遵循树形目录结构。文件可以被打开、浏览、排列、显示、管理、选定、创建、移动、复制、重命名或删除。文件的打开方式不仅可以通过双击,还可以通过启动相应应用...

Global site tag (gtag.js) - Google Analytics