在日常的工作与学习中,我们经常会使用思维导图这个工具,来把抽象而又无形的思考转换成有形并且具体的图像,是理清思路,梳理逻辑的一大神器。
准确的说,思维导图并不是一个具体的工具,而是一种方法。是道而不是术。实际落地时,我们通常还需要借助外部的工具。从最原始的纸和笔,到各种软件,可以说是应用尽有。目前我在使用的是xmind这款软件,下面就会以xmind为媒介间接的通过Java代码画思维导图。
我在看书的时候有一个习惯,先通过思维导图画出一本书的大纲,然后通过这个大纲来分主次的去阅读。可能有些同学感到疑惑,还没读过书,如何了解大纲呢?其实一本书的目录就是这本书最好的大纲。
本文通过把一个目录生成思维导图的例子来学习xmind基本的api使用。当然如果想系统学习的同学,可以参考文末给出的官方api链接。下图就是我们最终要生成的结果。
image.png
首先,书籍我选的是《一本书读懂24种互联网思维[2]》,选这本书,并不是因为这本书有多好,而是因为他比较典型,典型就典型在,看过这本书的目录后就没有必要再读这本书了,因为目录已经把要说的内容说的很清楚了。
那知道书名,怎么获取书的目录呢?很简单,打开豆瓣,找到这本书的详情,里面就有书籍的目录,直接把它copy下来就可以了,目录如下图。
//读取目录StringbookName="一本书读懂24种互联网思维";List
//创建思维导图的工作空间IWorkbookBuilderworkbookBuilder=Core.getWorkbookBuilder();IWorkbookworkbook=workbookBuilder.createWorkbook();然后的两行代码,通过Core类创建工作空间构建者类,再通过它的createWorkbook方法创建出一个空白的工作空间,这个创建完就会得到一个没有任何节点的空白导图。
//获得默认sheetISheetprimarySheet=workbook.getPrimarySheet();//获得根主题ITopicrootTopic=primarySheet.getRootTopic();//设置根主题的标题rootTopic.setTitleText(bookName);再接着,通过刚刚创建工作空间得到主sheet,这个sheet跟excel的概念差不多,就像浏览器的一个tab一样。效果如下图
另外还通过主sheet获得了根topic,并设置他的标题为书名,它对应下图
//章节topic的列表ArrayList
//把章节节点添加到要节点上chapterTopics.forEach(it->rootTopic.add(it,ITopic.ATTACHED));刚才说了把小章节都添加到了大章节上了,但是大章节现在还是无依无靠的,所以通过一个循环全部添加到了根Topic上。
//保存workbook.save(CLASS_PATH+FILE_SEPARATOR+bookName+".xmind");到此我们编码结束了,但是这些操作还在内存中,我们需要通过workbook的save方法把文件保存到硬盘上,另外文件后缀记得改成xmind,否则软件无法识别。