一个简单的rss浏览器的开发日志

现在只能算是个demo,所以别报太大期望,有空的可以帮忙完善完善,想要代码的请主动联系我

我会陆续的把代码贴上来的


                                                    华丽的分割线



06-27

 

首先是找到制定的读取rss信息的opensource,也就是rome现在的版本是0.8,配置好环境,运行第一个读取数据的代码。

内容参照http://blog.csdn.net/zdsdiablo/archive/2006/06/10/786366.aspx

 

数据部分可行,最核心的代码就是这个了,后面的开始UI的设计部分:

1.         JMenu菜单栏

2.         JToolBar工具栏

3.         JTree左边的树型结构

4.         JTabbedPane标签栏

5.         JTextPane具体显示的内容部分

首先架好结构,在GUIManager.java中,把这几个控件显示出来。

 

然后按照紧要关系,先实现的第5部分,也就是显示具体数据,参照文件NewsText.java最后给你的时候可能会变名字,现在还是叫这个(可能很多名字和位置都会变,现在做的分析不好,包结构弄的挺难看,做完了有空我再改)

这个文件没什么难度,不过当时写的时候因为少一句setContentType("text/html");折磨了很久,一直调试不成功,有了这句,主要是让那个空白区域可以象浏览器一样读取html的数据,而不是直接显示html代码(不懂问我)。

 

下一步就是实现在右边的那个列表

该列表的数据来自于前面rss读到的一条链接,具体代码参见本页开头的那个地址

读取数据不是问题,前面已经读了,主要就是建立它的模块有点麻烦,也就是那个NewsTableModel.java。能够显示数据以后写它的鼠标事件,写在NewsTable.java中,写好后,在鼠标点击某一行的时候,下面就会显示出相应的信息。

 

接下来的任务是写左边的那个tree,步骤还是先写模块,后写事件。因为里面的数据用什么来存储一直没有定下来,数据不多,暂时用xml来完成。用了jdom中的一些类。内容来自于RSSOWL这个开源软件的user.xml文件,用了其中的一部分,去掉了用不着的东西。

今天完成了对这个文件的读取,但是,对RSSOWL来说,里面是可以无限分层的,就象电脑里可以无限的一层一层建文件夹,这对读取来说有一点麻烦。具体的说,一次读取的话,因为不知道有多少层,就得写成死循环,要么就是用递归(我非常不喜欢这个东西);要么就得分层读取,就是首先读取第一层,当鼠标点击得时候在读取下一层。暂时按照后一种去写,不过鼠标点击得事件部分还没写,明天再说。

 

写一下后面的计划

1.         首先在JTree中按照树型结构显示出那个xml中读到的数据,在JTree中加入鼠标事件,配合xml按层展开树,把最后的link传递到右边的JTabbedPane中去(这里完成的话就算是一个demo了)

2.         写入数据库,先数据结构,然后建表,填入数据,要修改前面的一些地方

3.         然后整理整个项目的结构,层次要清晰些,命名统一规范一下。在需要注释的地方写上中文注释,到时候你改成英文的吧。然后加入工具栏和菜单栏的内容

4.         测试,看看有没有内存溢出,多用几个不同的链接,通过的话看显示有没有问题,通不过的话打出错误信息

5.         有时间加入一些花俏的功能,选作。

 

0629


图省事,左边的tree结构就用了两层,暂时还没想到多层的话应该怎么写

现在已经能把数据加进去了,显示出来的已经很象了,但是取的时候取不到对象,用鼠标点某一个结点只能得到他的标题,估计很快就能把里面的link传到右边去了。全部连起来以后demo就成了。

 

0630

成功放出demo, 暂时看,中文和图片显示的都还正常,读某些地址的时候时间很长,不知道是网络的问题还是程序结构写的不好,看看下一步是整理结构先,还是写数据库先。

 

0706

整理了代码的结构,引入了一个Hashtable htHandler 作为那几个控件的句柄。这样在各个控件之间就不用传递控件地址了,只要有这个就可以读出来了。去掉了textpane中可以写字的bug. 看看计划,该写数据库了。

下午三点,数据库连接成功,后面就是一些写数据和判断是否为历史数据区别的一些东西了

暂时按照TableData.java现有的结构来组织建表

用的mysql4.0 头晕,今天就到这了

 

 

 

 

 

 

08-15

忙了好些天,终于有功夫继续做了

mysql还是没弄,准备先把别的功能做完了再整数据库的部分

写完了那个配置端口的dialog,可惜现在只能读不能写,等有功夫把这段给补全

然后又加了一个欢迎页面,最简单的那种

加了一个帮助的dialog,不过里面什么都没写

 

08-1617

加了一个进度条,本来是用来显示读取网络数据时的进度的。最起码显示个状态,结果因为一条很恶心的代码,这些想法都泡汤了,这句代码就是最开始要读取的部分TableReader.java里面的XmlReader xr =new XmlReader(feedUrl); 这句。

因为这句话,读取数据的时候整个java界面部分都停掉了等着,甚至设了线程单独跑它也补行,我真想掐死它。不过这种地方不好改的,所以只能将就了。

所以现在的进度条意思跟正常的正好相反,就是平时是滚动的,读取的时候是停的

白痴吧

反正是做设计,那些好看不好用的东西就不整了,写一下后面的计划:

1.  完善配置端口的dialog

2.  支持mysql,可以把读到的数据存到mysql中,存什么呢?再考虑考虑,这个需求比上面那个代码还白痴,得多鄙视一会儿。

3.  如果完成了2 有必要在1的那个dialog里面再加入一些数据库的配置

 

关于上面2 的分析

table上面多选,选好以后鼠标点右键叫一个浮动菜单出来选择存入数据库

在显示的时候单独在顶层菜单加一个读取已经存入数据库的菜单项,然后就在tabbedpane里面添加一个table,这个 table跟原来的不一样,它是只有删除没有存的,标题区分一下就行了 sql建表部分已经完成,有两天应该就能搞定了

 

-- use this create table sql

DROP TABLE IF EXISTS `rss_inf_storedb`;

CREATE TABLE `rss_inf_storedb` (

  `title`   varchar(200)  NOT NULL default '',

  `publishedDate` BIGINT(20) NOT NULL default '0',

  `author`      varchar(200) NOT NULL default '',

  `description` TEXT(1024) NOT NULL default '',

  `link`   varchar(200) NOT NULL default ''

)DEFAULT CHARSET=latin1;

 

0818

成功加入数据库,不过本机的mysql4.0的,对中文的支持不好,所以就先不考虑专对中文的制式转换下功夫了,再写一个删除和浏览的table就基本OK

 

动作快呀,都整上了,可以测试了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值