--thumbelina.jar  这是一个演示图片搜索和显示的小程序JFrame

Preferences.userNodeForPackage(getClass());  根据传入的class所在包的路径创建一个preferences

prefs.flush();  保存到文件

项目中字符串拼接多采用StringBuilder

Lexer类用于对html格式的字符串解析成Node

mImage = Toolkit.getDefaultToolkit().createImage(bytes);  //通过byte[]创建图片

Rectangle功能很强大,可以计算与另一个Rectangle是否重叠,和获取重叠的的矩形

file = File.createTempFile("thumbelina", suffix);  file.deleteOnExit();    //创建临时文件

JViewport 用于查看底层信息的“视口”或“观察孔”。在滚动时,移动部分称为视口。这好像通过照相机的取景器进行查看。将取景器向上移动会将图片顶部的内部移入视野,而底部的内容将消失。

Tile类 英文是瓦,砖块的意思,很形象,接口编程,能得到“砖块”大小及位置Rectangle,它的状态Valid(有效/无效),它的id,项目里是图片对应的url

Picture类  负责下载图片,并且它实现了Tile,就可以在TileSet中显示了。它还有PictureListener属性,可以把图片状态的改变事件暴露出来。

PictureListener接口 对图片状态的监听

PicturePanel类  没看明白里面内嵌类Watcher的作用??

Sequencer类  把Picture放到队列里,一个线程定时地去取队列里面的图片,并呈现出来。

TileSet类 把矩形“瓦”集中起来,处理一些矩形重叠的问题,图片分割和整合部分看不懂。

ThumbelinaFrame类  程序的主界面

Thumbelina类 主要是对图片和链接的获取逻辑。2014-6-3

--sitecapturer.jar  一个抓取html和图片,并保存到本地的小程序,简单明了,以前我也想过找这样一个程序,把网页下载下来,放到本地看。

这个小程序就是实现了这样一个功能了,当然了,你要扩展它,让它能下更多的东西,比如js,css什么的。

SiteCapturer类  首先,它以内部类的形式定义ImageTag,LinkTag等的子类,封装得恰到好处。通过doSemanticAction()这个方法,在遍历的过程中得以执行,改写url为本地的。mCaptureResources是否获取资源文件。isToBeCaptured(String link)是否需要抓取。makeLocalLink(String link, String current)本地化链接地址。decode(String raw)对有%xx这样的编码进行解码。copy()下载资源,比如图片。 process()下载html,本地化url地址。分拣出各种资源并下载。

WikiCapturer类,是上面刚提到类的子类,主要是通过重写isToBeCaptured(String link)的方式,补充了对某些url地址的过滤条件。

htmlparser学习(原创)的更多相关文章

  1. htmlparser 学习

    htmlparser 学习系列 htmlparser 使用法使用与详解

  2. httpclient学习(原创)

    --httpmime-4.2.5.jar  跟提交Form相关的类 这一块主要post数据的提交.每一条数据同name和content组成.content可能是字节数组或是流.提交这一类(MIME)的 ...

  3. Symfony学习--原创。。。。

    {{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION') }} //显示当前symfony的版本 #div { opacity: 0 ...

  4. Python 学习文章收藏

    作者 标题 rollenholt Python修饰器的函数式编程 - Rollen Holt - 博客园 rollenholt python操作gmail - Rollen Holt - 博客园 ro ...

  5. 【狼】openGL 光照的学习

    小狼学习原创,欢迎批评指正 http://www.cnblogs.com/zhanlang96/p/3859439.html 先上代码 #include "stdafx.h" #i ...

  6. AI时代大点兵-国内外知名AI公司2018年最新盘点

    AI时代大点兵-国内外知名AI公司2018年最新盘点 导言 据腾讯研究院统计,截至2017年6月,全球人工智能初创企业共计2617家.美国占据1078家居首,中国以592家企业排名第二,其后分别是英国 ...

  7. [Linux]正则表达式和grep使用【转载】

    [Linux]正则表达式和grep使用 2018年12月05日 23:45:54 祥知道 阅读数 78 标签: 正则表达式grepLinuxegrep 更多 个人分类: Linux 所属专栏:  Li ...

  8. django中ORM的model对象和querryset 简单解析

    欢迎大家查看我的博客,我会不定时的用大白话发一些看了就能懂的文章,大家多多支持!如您对此文章内容有独特见解,欢迎与笔者练习一起探讨学习!原创文创!转载请注明出处! ORM是干嘛的? 介绍orm之前我应 ...

  9. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

随机推荐

  1. 用google-code-prettify高亮代码

    示例: https://code.google.com/p/google-code-prettify/wiki/GettingStarted 主题如何使用google-code-prettify高亮代 ...

  2. 关于jquery的cookie的顺序,应首先是jQuery的引用,然后是cookie引用,否则系统无反应

    <script src="../Scripts/jquery-1.4.1.js" type="text/javascript" ></scri ...

  3. leetcode130

    struct POS { int x; int y; POS(int newx, int newy): x(newx), y(newy) {} }; class Solution { public: ...

  4. js实现点击按钮弹出上传文件的窗口

    转自:https://www.jb51.net/article/100916.htm 1.详细描述 在页面上设置一个“选择文件”按钮,点击该按钮,会弹出本地磁盘信息用于选择文件. 2.代码 ? 1 2 ...

  5. delphi 泛型 c++builder 泛型

    delphi 泛型 System.Generics.Collections.pas TList<T> http://docwiki.embarcadero.com/Libraries/Be ...

  6. 使用Travis进行持续集成

    使用Travis进行持续集成 廖雪峰 持续集成:Continuous Integration,简称CI,意思是,在一个项目中,任何人对代码库的任何改动,都会触发CI服务器自动对项目进行构建,自动运行测 ...

  7. Spring MVC 自定义视图

    实现View import org.springframework.stereotype.Component; import org.springframework.web.servlet.View; ...

  8. AS3 巧用事件api简化鼠标拖动流程

     拖动,按照一般人的定义,拖动就是鼠标按下的时候移动鼠标,这里面有三个过程,分别是按下.移动鼠标和弹起.以stage为例,大家的实现步骤通常如下:(PS:此处不讨论startDrag和stopDrag ...

  9. Struts和Hibernate使用总结

    1   struts.xml重定向时报错    action cannot be found in the namespace/     http://blog.csdn.net/greetturin ...

  10. 将*.sql数据库脚本导入到sqlserver中(sql文件导入sqlserver)

    在SqlServer中这个是用生成sql脚本生成的 要是在导入数据库用数据导入/导出向导导不进去 其实要用查询分析器来打开sql文件 然后执行就可以了