- 浏览: 575507 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
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 1145http://www.infoq.com/articles/i ... -
什么是SOA?
2010-06-30 00:03 1195SOA(Service Oriented Architectu ... -
Eclipse workspace包含哪些工程的配置文件在什么地方?
2010-06-09 22:39 6244今天下午遇到一个问题,Eclipse在某一个Workspa ... -
Java -jar 选项与 -cp/-classpath
2010-06-04 22:29 13699今天遇到一个问题,我虽然把所有的引用到的jar文件都放到 ... -
设计模式--琢磨推敲
2010-05-31 10:50 1644分类: 创建模式 结构模式 行为模式 尤点: ... -
Java面试题目(English),先占个位置,有空了慢慢翻译
2010-05-12 00:07 1761答案参考链接: http://www.allapplabs.c ... -
Java变量作用域内存
2010-05-10 16:06 2308我一直在想一个问题,做循环的时候变量在循环体内定义省内存还是变 ... -
Java split 的时候遇到的问题
2010-05-10 13:40 1106我有一个字符串,分隔符是“|”,我使用方法下面代码总是取不到分 ... -
WebShpere 端口列表及配置文件
2010-04-21 23:54 1075我承认我是标题党,点过去你就感激我了,哈哈! http://p ... -
Java 内存监控工具大全
2010-04-14 13:29 2257http://java-source.net/open-sou ... -
基于JDK1.5,1.6开发的程序如何在JDK1.4上面跑
2010-03-11 11:08 1078问题就是标题了,具体的可以看看这两个网站,两个开源的项目,瞅瞅 ... -
UML 的免费课程,跟大家分享一下(Englsih)。
2010-02-11 10:32 909http://www.cragsystems.co.uk/IT ... -
静态块,实例块
2010-02-11 09:06 1220package com.ibm.blunit.luzl; ... -
Java Label continue goto
2010-02-11 07:11 1685今天学了个新知识,goto 和 continue后面能跟标签, ... -
Java下载集合,sun提供的.
2010-02-10 07:25 1041从这个link下载:http://java.sun.com/p ... -
Java的Timezone问题
2010-02-02 00:32 4642今天遇到了一个比较有意思的问题,从服务器上封装好的java.s ... -
如何设置pdf阅读器打开文章时回到上次浏览的页
2010-02-01 11:12 3000在下图中的checkbox上打个对勾就行了。 -
Tomcat+Spring应用系统中log4j配置文件的使用方法
2009-07-26 14:01 6495转载自:http://blog.sina.com.cn/s/b ... -
springMVC入门
2009-07-22 16:09 1993转载自http://blog.csdn.net/lenotan ... -
Java程序性能调优的基本知识和JDK调优
2009-07-21 17:04 1363一 基本知识 1.1 性 ...
相关推荐
压缩包中的文件名"java浏览器调用ie内核-1、java浏览器调用ie内核-简单"可能代表了实现此功能的不同版本或步骤。"1"可能是基础实现,而"简单"可能是简化后的版本。这些文件可能包含Java源代码、配置文件或者相关的...
在Java编程环境中,调用外部应用程序,如Internet Explorer(IE)浏览器,是一项常见的任务。这主要通过`java.lang.Runtime`类或`java.awt.Desktop`类来实现。下面将详细介绍如何使用Java调用IE浏览器,并支持其他...
本文将深入探讨如何在Delphi 7中调用Java接口,实现两者之间的数据传递和结果返回。 首先,理解Delphi 7调用Java接口的基础原理。这种通信通常依赖于Java的本地接口(JNI,Java Native Interface),它允许Java代码...
总结起来,Java调用Chrome内核CEF实现非JxBrowser的方式需要开发者具备一定的C++和JNI知识,以及对CEF框架的理解。这个过程虽然相对复杂,但可以避免商业库的费用,同时获得与Chrome相同的Web渲染能力。在实际开发中...
在本文中,我们将深入探讨如何使用JAVA调用海康威视(Hikvision)的SDK来实现摄像头的预览功能,并进行截图操作。海康威视作为全球知名的安防监控设备制造商,提供了丰富的SDK供开发者集成到自己的应用中,以便更好...
总结来说,Java实现流量控制涉及多方面,包括基本的Socket缓冲区设置、NIO的选择器和通道、自定义协议以及线程管理和第三方库的支持。开发者可以根据实际需求选择合适的方法来实现流量控制,确保网络通信的稳定性和...
本文将详细讲解如何在QT项目中调用JAVA文件,以实现与Android原生系统的交互。 首先,我们需要了解QT的QAndroidJniObject类,它是QT为与Android Java层交互提供的一种工具。QAndroidJniObject允许我们在C++代码中...
- **实现Java调用:** 在`COMTest_Start`类中实现调用C++ DLL的方法。 **技术要点:** - 需要注意C#和Java中的数据类型转换问题,特别是字符串类型的处理。 - 确保C++项目启用了CLR支持。 - JNA的配置与使用。 ##...
在本项目中,`JNative.jar`可能是开发者用来封装了与LED屏通信的原生代码,例如C++或C代码,这样Java程序可以通过JNI调用这些原生方法来控制LED屏。 接着,我们看到两个`.dll`文件:`JNativeCpp.dll`和`BxADLL.dll`...
本文将深入探讨如何使用JAVA调用海康威视SDK来实现摄像头的预览功能。海康威视作为全球领先的安防产品及解决方案提供商,提供了丰富的SDK供开发者进行二次开发,以满足各种定制化需求。 首先,我们需要了解海康威视...
d_backward 的 Clicked 事件...以上就是如何利用 PowerBuilder 实现对 IE 浏览器调用与控制的详细步骤和相关知识点。通过这样的技术,开发者可以构建更加灵活且用户友好的应用程序,适应不断变化的用户需求和技术趋势。
Java RPC(Remote Procedure Call)调用是分布式系统中常见的通信方式,它允许一个程序在不关心远程系统具体实现的情况下调用另一个网络上的程序。在这个Java RPC调用示例中,我们将探讨RPC的基本概念、实现机制以及...
总结来说,这个项目利用Java调用大漠插件,结合游戏柄接口,实现后台自动化操作。开发者需要了解Java的I/O、事件处理、多线程以及与USB设备交互的相关知识,同时熟悉大漠插件的API,才能有效地编写出这样的程序。...
主要介绍了Java编程调用微信接口实现图文信息等推送功能,涉及java微信图文信息推送接口调用及相关文件、字符串编码转换相关操作技巧,需要的朋友可以参考下
java调用Gmssl中国密接口进行对称与非对称加解密等运算,动态so库进行接口jni方式调用,采取接口形式对外暴露,方便对接系统调用相关java接口进行相关运算操作。
java调用comfyui接口,通过api json调用,同时可以通过参数替换 api的json中的参数,返回数据包含 :url 、path、base64方式
要做datastage调度的,ds对c开放接口,这个是java写的可以用java调用dsjob的代码,里面实现了所有的方法,还有一个调用的例子。需要的朋友可以下载回去,我研究好长时间。。。里面还有用到的ds的文档可以自己在其他...
SatJni是C++编写的动态链接库,实现了C#,PB,Delphi,VB,VC等对Java的调用,能让你很容易地调用成熟的java类库和第三方java组件。不用再为移值java代码而烦恼。 示例中演示了调用医保提供的java库(节省大量改造时间)...
本示例主要探讨的是如何使用C#调用Java接口,实现不同编程语言之间的交互。C#和Java都是广泛应用的编程语言,它们各自拥有丰富的库和生态系统,但有时需要在两者之间建立桥梁,以利用各自的优点。本文将详细介绍这一...
本项目工程提供了完整的Java、C++和C#的示例,可以帮助开发者理解如何在实际项目中实现Java通过JNI调用C# DLL的过程,从而提升应用的性能或实现特定的功能。通过学习和实践这个工程,开发者可以进一步提升跨语言编程...