代码片段管理工具-QuickCode v200409

前言

平时我们写一些类或者方法时,经常需要一些常常写但是又重复的代码,比如一些排序算法,文件操作,一般我们可以打个jar包导入使用,如果只需要用到jar包的部分代码,打jar包就显得没必要了。

于是笔者自己做了这样一个小工具,方便管理一些代码片段,后续会不断更新,也希望道友们多多指教。

源码地址:https://gitee.com/nonoas/QuickCode

功能简介

在这里插入图片描述

更新内容

1.更新了jpoenix界面风格;
2.修复了打开目录中存在无后缀名的文件导致软件崩溃的问题;
3.增加了切换工作区间的功能。

使用方法

功能比较简单:
1.新建分类;
2.新建代码文件;
3.点击复制可直接将代码内容复制到剪切板。

下载链接

复制这段内容后打开百度网盘手机App,操作更方便哦
软件链接:
https://pan.baidu.com/s/13DwYMoxQj8AQR3R1mQnbaQ
提取码: jexd

JRE 1.8.131:
https://pan.baidu.com/s/1YLtvyhsQ_d7HHJbE_uCT6g
提取码: 5gc5
(如果您的电脑上没有运行环境 jre1.8.131,请下载该jre解压到软件的启动程序相同目录下)

开发技术

开发环境: eclipse,IDEA
编程语言: Java

算法源码

1.生成目录

使用递归算法,生成文件目录的TreeView

/**
     * 创建文件夹目录
     *
     * @param path 父文件夹路径
     */
    private void buidContentTree(String path, TreeItem<String> rootItem) {

        File[] files = new File(path).listFiles();

        if (files == null)
            return;

        for (File file : files) {

            if (file.isFile() && isSupportedType(FileUtil.getFileType(file))) { // 创建文件节点
                ImageView file_icon = new ImageView(MyIcons.IMG_FILE);
                file_icon.setFitHeight(16);
                file_icon.setFitWidth(14);
                TreeItem<String> item = new TreeItem<>(file.getName(), file_icon);
                rootItem.getChildren().add(item);
            } else if (file.isDirectory()) { // 创建文件夹节点
                ImageView dir_icon = new ImageView(MyIcons.IMG_FOLDER_CLOSE);
                dir_icon.setFitHeight(16);
                dir_icon.setFitWidth(16);
                TreeItem<String> item = new TreeItem<>(file.getName(), dir_icon);
                rootItem.getChildren().add(item);
                buidContentTree(file.getAbsolutePath(), item); // 递归创建子文件夹内的节点
            }
        }
    }

2.查找文件

使用深度优先算法

/**
	 * 查找TreeView对应的item
	 * 
	 * @param item    查找的对象节点
	 * @param keyWord 查找的关键字
	 * @return 目标节点
	 */
	private TreeItem<String> findTreeItem(TreeItem<String> item, String keyWord) {

		Pattern regex = Pattern.compile(keyWord);
		ObservableList<TreeItem<String>> childItems = item.getChildren();

		for (TreeItem<String> childItem : childItems) {
			if (childItem.isLeaf() && regex.matcher(childItem.getValue()).find())
				return childItem;
			TreeItem<String> aimItem = findTreeItem(childItem, keyWord); // 递归搜索子文件夹

			if (aimItem != null)
				return aimItem; // 如果不为null则返回找到的item
		}
		return null;
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章