- 浏览: 573456 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
sucheng2016:
最近也遇到同樣的問題, 我用的是com.fasterxml.j ...
Java的Timezone问题 -
netwelfare:
这里有篇《时间纪元与时区介绍》,讲解的不错,可以看看。
Java的Timezone问题 -
yjplxq:
...
Java -jar 选项与 -cp/-classpath -
phil09s:
问题是,为什么要设定成这样?
Java局部变量必须初始化 -
anttu:
...
db2 SQL: value(), values(), with, recursive SQL
最近在一个网站上看图,某一个帖子的图片都在一个页面,往下滚动的时候感觉眼花并且看不全,所以想开发一个简单的浏览器,实现功能就是填一个地址,然后把所有的图片解析出来,按上下键来浏览图片:
我用HtmlUnit很容易就解析到了所有图片:
但是我得把图片显示出来在Java的JFRAME中,怎么办呢?我在Sun的Tutorial中搜到一个办法,就是利用Swing的控件来实现:
http://java.sun.com/docs/books/tutorial/uiswing/components/html.html
大概就是JLabel能够显示Html代码,JButton也可以用用Html代码生成,这个link也有:
但是因为我解析到的图片路径是远程的,不知为什么显示不出来,所以就想用嵌入浏览器的方式来实现,从google又搜索了一下,找到了标题中的EZJComIExplorer18,利用他的jar包中提供的方法很容易就实现了显示图片的功能,当然因为它可以嵌入到JFrame中,所以可准确控制它的navigation路径,上下按钮也可以用了,并且这个貌似还有其它功能,可以调用Microsoft的ActiveX控件.具体可以到他们的网站上了解.
[url]
http://ezjcom.com/
[/url]
我的嵌入浏览器到JFrame的代码大概是这段Sample code:
这种东西挺无聊的,windows大部分软件都是COM,很容易在VBscript里进行调用,java这种方式十分十分的笨拙。
有道理,但是因为想用Java实现就这样了,VB我自己也不太会,呵呵!
我用HtmlUnit很容易就解析到了所有图片:
HtmlPage page=webClient.getPage("http://www.xxx.com"); Iterable<HtmlElement> iterable=page.getAllHtmlChildElements(); Iterator<HtmlElement> hIterator=iterable.iterator(); while (hIterator.hasNext()) { HtmlElement htmlElement = (HtmlElement) hIterator.next(); if (htmlElement instanceof HtmlImage) { String imageurl=((HtmlImage)htmlElement).getAttributeValue("src"); ShareURL.imageURLs.add(new URL(imageurl)); } }
但是我得把图片显示出来在Java的JFRAME中,怎么办呢?我在Sun的Tutorial中搜到一个办法,就是利用Swing的控件来实现:
http://java.sun.com/docs/books/tutorial/uiswing/components/html.html
... String initialText = "<html>\n" + "Color and font test:\n" + "<ul>\n" + "<li><font color=red>red</font>\n" + "<li><font color=blue>blue</font>\n" + "<li><font color=green>green</font>\n" + "<li><font size=-2>small</font>\n" + "<li><font size=+2>large</font>\n" + "<li><i>italic</i>\n" + "<li><b>bold</b>\n" + "</ul>\n"; htmlTextArea = new JTextArea(10, 20); htmlTextArea.setText(initialText); ... theLabel = new JLabel(initialText); ...
大概就是JLabel能够显示Html代码,JButton也可以用用Html代码生成,这个link也有:
button = new JButton("<html><b><u>T</u>wo</b><br>lines</html>");
但是因为我解析到的图片路径是远程的,不知为什么显示不出来,所以就想用嵌入浏览器的方式来实现,从google又搜索了一下,找到了标题中的EZJComIExplorer18,利用他的jar包中提供的方法很容易就实现了显示图片的功能,当然因为它可以嵌入到JFrame中,所以可准确控制它的navigation路径,上下按钮也可以用了,并且这个貌似还有其它功能,可以调用Microsoft的ActiveX控件.具体可以到他们的网站上了解.
[url]
http://ezjcom.com/
[/url]
我的嵌入浏览器到JFrame的代码大概是这段Sample code:
// Shows how to embed Internet Explorer in a Swing panel. // Note that the examples of using IE Java API, as shown in // other sample files, can also be used on this instance // of IE. import iexplorer.InternetExplorer; import iexplorer.IWebBrowserApp; import iexplorer.WebBrowser; import ezjcom.JComObject; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JPanel; import javax.swing.JFrame; import java.awt.BorderLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class WebFrame extends JFrame { WebBrowser browser; JButton button = new JButton(); JLabel label = new JLabel( "URL: " );; JTextField url = new JTextField( 12 ); JPanel buttonPanel = new JPanel(); /** TO BE DONE ** Change the string below to the "home" site for this program. **/ String home = "http://www.your-home-site.com/"; // This method is called when the Test button is clicked. void onButtonClick() { try { // Navigate to the URL typed. browser.getIWebBrowser2().Navigate( url.getText()); } catch (Exception ex) { ex.printStackTrace(); } } void showBrowser() { try { setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); getContentPane().setLayout( new BorderLayout()); // Create a container instance and add it to the frame. ezjcom.JComActiveXContainer activexContainer = new ezjcom.JComActiveXContainer(); getContentPane().add( activexContainer, BorderLayout.CENTER ); button.setText( "Navigate" ); buttonPanel.add( label ); buttonPanel.add( url ); buttonPanel.add( button ); getContentPane().add( buttonPanel, BorderLayout.SOUTH ); button.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { onButtonClick(); } }); // Create the ActiveX object and attach it to the container. browser = new WebBrowser(); activexContainer.setActiveX( browser ); // Provide a home. browser.getIWebBrowser2().Navigate( home ); // Show the frame. setSize( 600, 400 ); setVisible( true ); } catch (Exception ex) { ex.printStackTrace(); } } public static void main( String[] args ) { new WebFrame().showBrowser(); } }
- EZJComIExplorer18.zip (5.8 MB)
- 下载次数: 154
评论
2 楼
luzl
2009-03-16
ray_linn 写道
这种东西挺无聊的,windows大部分软件都是COM,很容易在VBscript里进行调用,java这种方式十分十分的笨拙。
有道理,但是因为想用Java实现就这样了,VB我自己也不太会,呵呵!
1 楼
ray_linn
2009-03-15
这种东西挺无聊的,windows大部分软件都是COM,很容易在VBscript里进行调用,java这种方式十分十分的笨拙。
发表评论
-
InfoQ 上的一篇非常棒的文章 -- IT 和 架构从里到外的透视
2011-01-08 00:22 1131http://www.infoq.com/articles/i ... -
什么是SOA?
2010-06-30 00:03 1180SOA(Service Oriented Architectu ... -
Eclipse workspace包含哪些工程的配置文件在什么地方?
2010-06-09 22:39 6231今天下午遇到一个问题,Eclipse在某一个Workspa ... -
Java -jar 选项与 -cp/-classpath
2010-06-04 22:29 13660今天遇到一个问题,我虽然把所有的引用到的jar文件都放到 ... -
设计模式--琢磨推敲
2010-05-31 10:50 1629分类: 创建模式 结构模式 行为模式 尤点: ... -
Java面试题目(English),先占个位置,有空了慢慢翻译
2010-05-12 00:07 1754答案参考链接: http://www.allapplabs.c ... -
Java变量作用域内存
2010-05-10 16:06 2282我一直在想一个问题,做循环的时候变量在循环体内定义省内存还是变 ... -
Java split 的时候遇到的问题
2010-05-10 13:40 1096我有一个字符串,分隔符是“|”,我使用方法下面代码总是取不到分 ... -
WebShpere 端口列表及配置文件
2010-04-21 23:54 1061我承认我是标题党,点过去你就感激我了,哈哈! http://p ... -
Java 内存监控工具大全
2010-04-14 13:29 2247http://java-source.net/open-sou ... -
基于JDK1.5,1.6开发的程序如何在JDK1.4上面跑
2010-03-11 11:08 1064问题就是标题了,具体的可以看看这两个网站,两个开源的项目,瞅瞅 ... -
UML 的免费课程,跟大家分享一下(Englsih)。
2010-02-11 10:32 901http://www.cragsystems.co.uk/IT ... -
静态块,实例块
2010-02-11 09:06 1184package com.ibm.blunit.luzl; ... -
Java Label continue goto
2010-02-11 07:11 1672今天学了个新知识,goto 和 continue后面能跟标签, ... -
Java下载集合,sun提供的.
2010-02-10 07:25 1025从这个link下载:http://java.sun.com/p ... -
Java的Timezone问题
2010-02-02 00:32 4632今天遇到了一个比较有意思的问题,从服务器上封装好的java.s ... -
如何设置pdf阅读器打开文章时回到上次浏览的页
2010-02-01 11:12 2983在下图中的checkbox上打个对勾就行了。 -
Tomcat+Spring应用系统中log4j配置文件的使用方法
2009-07-26 14:01 6484转载自:http://blog.sina.com.cn/s/b ... -
springMVC入门
2009-07-22 16:09 1980转载自http://blog.csdn.net/lenotan ... -
Java程序性能调优的基本知识和JDK调优
2009-07-21 17:04 1352一 基本知识 1.1 性 ...
相关推荐
在Java编程环境中,调用外部应用程序,如Internet Explorer(IE)浏览器,是一项常见的任务。这主要通过`java.lang.Runtime`类或`java.awt.Desktop`类来实现。下面将详细介绍如何使用Java调用IE浏览器,并支持其他...
本话题主要关注如何利用Java调用WPS(金山办公软件)来实现Word到PDF的转换以及Word到图片的转换。这些功能对于处理大量文档和报告的企业尤其有用,可以自动化工作流程,减少手动操作。 首先,让我们了解WPS。WPS ...
总结起来,Java调用Chrome内核CEF实现非JxBrowser的方式需要开发者具备一定的C++和JNI知识,以及对CEF框架的理解。这个过程虽然相对复杂,但可以避免商业库的费用,同时获得与Chrome相同的Web渲染能力。在实际开发中...
在本文中,我们将深入探讨如何使用JAVA调用海康威视(Hikvision)的SDK来实现摄像头的预览功能,并进行截图操作。海康威视作为全球知名的安防监控设备制造商,提供了丰富的SDK供开发者集成到自己的应用中,以便更好...
本文将深入探讨如何在Delphi 7中调用Java接口,实现两者之间的数据传递和结果返回。 首先,理解Delphi 7调用Java接口的基础原理。这种通信通常依赖于Java的本地接口(JNI,Java Native Interface),它允许Java代码...
总结来说,Java实现流量控制涉及多方面,包括基本的Socket缓冲区设置、NIO的选择器和通道、自定义协议以及线程管理和第三方库的支持。开发者可以根据实际需求选择合适的方法来实现流量控制,确保网络通信的稳定性和...
本文将详细讲解如何在QT项目中调用JAVA文件,以实现与Android原生系统的交互。 首先,我们需要了解QT的QAndroidJniObject类,它是QT为与Android Java层交互提供的一种工具。QAndroidJniObject允许我们在C++代码中...
本文将深入探讨如何使用JAVA调用海康威视SDK来实现摄像头的预览功能。海康威视作为全球领先的安防产品及解决方案提供商,提供了丰富的SDK供开发者进行二次开发,以满足各种定制化需求。 首先,我们需要了解海康威视...
d_backward 的 Clicked 事件...以上就是如何利用 PowerBuilder 实现对 IE 浏览器调用与控制的详细步骤和相关知识点。通过这样的技术,开发者可以构建更加灵活且用户友好的应用程序,适应不断变化的用户需求和技术趋势。
Java RPC(Remote Procedure Call)调用是分布式系统中常见的通信方式,它允许一个程序在不关心远程系统具体实现的情况下调用另一个网络上的程序。在这个Java RPC调用示例中,我们将探讨RPC的基本概念、实现机制以及...
Java 调用 ODI webservice 实现数据同步 Java 调用 ODI webservice 是实现数据同步的一种常见方式。ODI(Oracle Data Integrator)是一种数据集成平台,提供了webservice接口,允许用户通过webservice调用ODI方案...
总结来说,这个项目利用Java调用大漠插件,结合游戏柄接口,实现后台自动化操作。开发者需要了解Java的I/O、事件处理、多线程以及与USB设备交互的相关知识,同时熟悉大漠插件的API,才能有效地编写出这样的程序。...
主要介绍了Java编程调用微信接口实现图文信息等推送功能,涉及java微信图文信息推送接口调用及相关文件、字符串编码转换相关操作技巧,需要的朋友可以参考下
要做datastage调度的,ds对c开放接口,这个是java写的可以用java调用dsjob的代码,里面实现了所有的方法,还有一个调用的例子。需要的朋友可以下载回去,我研究好长时间。。。里面还有用到的ds的文档可以自己在其他...
JNA通过映射Java接口到本地库函数来实现这一功能,简化了Java与本地代码的交互。 2. **调用系统API**: 在Windows系统中,`Kernel32.dll`是核心系统库之一,包含了大量的系统级函数。我们可以通过JNA加载该库,并...
SatJni是C++编写的动态链接库,实现了C#,PB,Delphi,VB,VC等对Java的调用,能让你很容易地调用成熟的java类库和第三方java组件。不用再为移值java代码而烦恼。 示例中演示了调用医保提供的java库(节省大量改造时间)...
java通过dll 或者动态库调用讯飞sdk实现离线文字转语音,讯飞离线文字转语音,java调用windows 或者linux动态库,通过jna的native方法实现,主要还要注意项目中路径的配置,先到讯飞控制台下载sdk,项目中涉及到的...
java调用Gmssl中国密接口进行对称与非对称加解密等运算,动态so库进行接口jni方式调用,采取接口形式对外暴露,方便对接系统调用相关java接口进行相关运算操作。
本示例主要探讨的是如何使用C#调用Java接口,实现不同编程语言之间的交互。C#和Java都是广泛应用的编程语言,它们各自拥有丰富的库和生态系统,但有时需要在两者之间建立桥梁,以利用各自的优点。本文将详细介绍这一...
总的来说,调用.NET接口在Java中可以通过标准Web服务方式或RESTful接口实现,选择哪种方法取决于.NET接口的具体设计和项目需求。熟悉这些技术对于提高跨平台开发的效率至关重要。记得在实际应用中,一定要确保兼容性...