--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. YUM软件包额外扩展了解项

    5.YUM配置文件 yum的配置一般有两种方式: 一种是直接配置/etc目录下的yum.conf文件, 另外一种是在/etc/yum.repos.d目录下增加.repo文件 [root@xuliang ...

  2. 42. linux下数据库服务启动

    进到bin目录运行 emctl start dbconsole oracle@suse92:~> sqlplus /nolog SQL*Plus: Release 9.2.0.4.0 - Pro ...

  3. 使用AngularJS处理单选框和复选框的简单方法

    在复选框中,可以绑定ng-model给false或者true值,即可选中或清除选中状态 如下图 而在单选框里就相对复杂一点,单选框要选中一个,就要给相同的name属性,然后绑定相同的ng-model, ...

  4. apache http get 和 post 请求

    1.首先要把jar依赖进项目 <dependency> <groupId>org.apache.httpcomponents</groupId> <artif ...

  5. VBA 选择文件

    Private Function SelectFile(ByVal strFilter As String) As String    Dim FileName As Variant     '打开文 ...

  6. VBA 禁止保存

    禁止保存 在workbook事件中 Private Sub Workbook_BeforeClose(Cancel As Boolean)    Me.Saved = TrueEnd Sub Priv ...

  7. as3 文档类引用

    /**文档类引用**/ public static var main:CoverMain; public function CoverMain() { main=this; }

  8. 趣味编程:FizzBuzz(Swift版)

    func toFizzBuzzExpr(n: Int) -> String { return n % 3 == 0 && n % 5 == 0 ? "FizzBuzz& ...

  9. 从给定字符串中截取n个字节的字符(解决汉字截取乱码问题)

    function GetNBytesChar(s: Ansistring; n: Integer): string;var  aStr: AnsiString;  bStr: WideString;b ...

  10. where T:new() 是什么意思

    经常看到方法后面加where T:new() ,下面来解释下 比如如下这个方法   protected static T CreateNewInstance<T>() where T :  ...