Haohappy的专栏--PHP5研究中心

PHP5研究中心 研究专业PHP技术,传播全球最新PHP动态 ,推广国内PHP企业应用

陈浩ID:Haohappy2004
573754次访问,排名64好友1人,关注者29
make ur life better..
[加为好友] [即时聊天] [发私信]
Haohappy2004的文章
原创 167 篇
翻译 0 篇
转载 0 篇
评论 506 篇
Haohappy的公告
我的Blog主要关于PHP/Java WEB开发。欢迎讨论:

Email & MSN:


所有文章均为Haohappy原创或翻译,需要转载请通过Email与我联系


我的网站:
PHPEye开源社区
phpeye.com

我的新书:


《Programming PHP》中文版第二版,陈浩(Haohappy)、胡丹、徐景(RainX)译,电子工业出版社出版,2007年4月上市)

网上书店购买地址:
当当网(dangdang.com)
互动出版网(china-pub.com)
第二书店(dearbook.com)
华储网(huachu.com.cn)
蔚蓝书店(welan.com)

本书 配套论坛  勘误系统

常用参考手册:

最近评论
PrideRock:谢谢关注
jodynet:CSDN最近两年的改版,不知道改成什么样子。我已经好久没登陆CSDN看文章了。整个网站很乱,惨不忍睹来形容一点也不为过。
jiangtao:谢谢对我们的建议和意见。
wysea:呵呵,真巧,下午在CSDN上看到这篇文章,被打击的不行,这里HAOHAPPY就出头说话了,自信心又起来了! 谢谢!
ModelKingChina:深有同感,当时看到这篇文章只想拿块砖头拍编辑的脑袋.CSDN作为国内非常有影响力的IT综合站,在对待语言方面是不应该有所偏见的,如此简单的e文,本不应该翻译错误,更多的我想是编辑曲意的翻译. 语言与平台之争向来一个老大难问题,但CSDN却无论如何也不应该卷入的.
文章分类
收藏
    相册
    Blogs
    Fantasy Soft(RSS)
    Freeman的Blog
    hosander的专栏
    PHPEye.com
    web2.0 focus(RSS)
    开发视界[专家专栏](RSS)
    歪脖·坑(RSS)
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 使用JDIC与本机桌面程序交互收藏

    新一篇: PHP5.3中新增的魔术常量__DIR__ | 旧一篇: PHP4即将退出历史舞台

    Java在WEB上大放异彩,但在桌面程序开发上可以说逊色太多了。Swing默认的样式难看,速度又慢,而且为了兼容各操作系统,Java很难保证方便地与一些系统专有的程序进行交互,比如Windows中的IE等,而.NET Framework则有很方便的工具可供使用。

    对本机程序进行封装,这也是现在软件开发的一大思路,比如傲游(Maxthon)浏览器(原名MyIE2),就是基于IE进行开发的,加了很多功能,现在非常流行。

    可以想像,如果用Java实现一个Maxthon,难度是相当大的。

    但JDIC的出现,使Java与本机桌面程序交互变得容易了不少。JDesktop Integration Components (JDIC)的目的是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC 目前提供了本机 Web 浏览器(Internet Explorer 或 Mozilla) 支持、系统托盘支持、文件扩展集成和其他桌面特性。相信JDIC将来在Java桌面开发上会越来越受欢迎。

    https://jdic.dev.java.net/
    http://www.ibm.com/developerworks/cn/java/j-jdic/
    http://community.java.net/javadesktop/

    下面以一个基于IE浏览器的小程序来介绍一下JDIC的使用。

    程序的需求: 复制一段文字内容到IE浏览器打的网页中的某些表单,即实现自动填写表单的功能。比如我们登录phpeye.com,自动填写用户登录表单。

    这个功能也是现在很多浏览器本身就支持的,比如Firefox,就会记录,然后自动完成。当然我们使用程序控制更为强大,易于扩展。这是个简单的功能,但对于某些行业,经常需要在网页上填写大量表单,就非常有用,可以节省大量时间,特别是如果填写的数据也用程序来读取的话:)

    解决思路:使用程序打开一个IE窗口,并在窗口中执行一段JavaScript代码,设置表单的值。

    使用JDIC,即其中的org.jdesktop.jdic.browser这个package,使用executeScript()方法即可以在当前窗口打开的HTML中执行JavaScript。这里基于jdic.browser的Demo做些简单的改写,就可以满足我们的需求。

    首先在浏览器上增加一个“自动完成”按钮,并给该按钮加上事件处理函数。

    import org.jdesktop.jdic.browser.*;

    webBrowser = new WebBrowser(new URL("http://www.phpeye.com"));

     JButton jCompleteButton = new JButton("自动填写",
                new ImageIcon(getClass().getResource("images/AC.png")));

    jCompleteButton.addActionListener(new Browser_jCompleteButton_actionAdapter(this));       

    class Browser_jCompleteButton_actionAdapter implements java.awt.event.ActionListener {
        Browser adaptee;

        Browser_jCompleteButton_actionAdapter(Browser adaptee) {
            this.adaptee = adaptee;
        }

        public void actionPerformed(ActionEvent e) {
            adaptee.jCompleteButton_actionPerformed(e);
        }
    }

      void jCompleteButton_actionPerformed(ActionEvent e) {
              webBrowser.executeScript("document.getElementById('uname').value='haohappy';document.getElementById('pwd').value='123456';");
        }

    上面红色那行就是利用JS来设置表单的内容。

    最后结果:

    可以在当前页面中执行JavaScript,我们就可以对HTML进行各种各样的操作,实现各种功能。

    发表于 @ 2007年08月25日 10:54:00|评论(loading...)|编辑

    新一篇: PHP5.3中新增的魔术常量__DIR__ | 旧一篇: PHP4即将退出历史舞台

    评论

    #lgx522 发表于2007-08-29 08:51:23  IP: 116.52.1.*
    本人向来盲从Java桌面领域不行的流行偏见,但最近对Swing的实践,令我彻底改变了观点。应该说Swing的精彩远超期待。

    最重要的,是Swing技术架构上的清晰与优秀。大家可以轻易进行扩展。外观?在main函数中加几行代码调用本机默认外观不就可以了。这种话完全是误导了所有懒于实践的初学者。

    初始速度的确是较慢,为了跨平台也算值。
    Spring Remoting+Swing是企业应用的理想选择。
    #Haohappy2004 发表于2007-08-29 14:48:19  IP: 222.79.83.*
    To lgx522:

    我用Swing已经四年多了,你只是最近实践了一下,就“彻底”改变了观点,那么你对于桌面开发的要求应该是很低的。 先不说和其它语言的桌面外观库比较,只要和SWT相比,Swing的外观也算是丑了。

    Swing默认的界面不好看这是事实,调用本机外观也只是达到了基本的要求。 现在用户对于UI的要求是相当高的。
    #Haohappy2004 发表于2007-08-29 14:54:57  IP: 222.79.83.*
    说到Swing的外观,我还是建议你用一些第三方的Look&Feel,比如JGoodies,这样看起来还算顺眼,而且可以跨平台:
    http://p.blog.csdn.net/images/p_blog_csdn_net/haohappy2004/jgoodies.jpg

    你所说的调用本机默认外观,在Linux下可是非常难看。
    #simonhappy 发表于2007-11-28 16:14:25  IP: 218.247.206.*
    JDIC的项目很久没有更新了,而且没有新feature的添加,使用的意义不大,没有支持,估计在Vista上无法运行。使用Swing或者SWT是目前Java桌面的正道,新的Java6中Swing还可以。
    如果要求更好的效果,关注JavaFX,这是java解决rich client的未来。
    #cuiwenjun 发表于2007-12-24 10:10:32  IP: 218.80.251.*
    呵呵,我们公司也用了这个控件来做WEB浏览器控件,不过后来不用了。
    #joymaple 发表于2008-01-11 02:47:06  IP: 59.41.170.*
    我想问的是,如果我想把这个JAVA浏览器运行在没有JAVA虚拟机上的电脑上应该如何做?打包?把几十兆的JRE也打包在这个软件里面??
    #Haohappy2004 发表于2008-01-16 09:47:33  IP: 59.57.231.*
    @joymaple Java程序都这样。
    #xxymg 发表于2008-03-26 00:29:21  IP: 122.13.224.*
    不错 sun又出新玩意了
    #longforfreedom 发表于2008-04-05 23:56:18  IP: 220.167.47.*
    不是吧..swing不难看啊。。。。
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © Haohappy