今天闲着没有事,就想写一个程序,一个调用浏览器打开网页的程序。这个程序最终将应用到我的项目当中,作为系统启动的启动文件来快速开发B/S模式的项目,省的每次测试系统或者模块都要打开浏览器。
这是一个SWT的程序,在Eclipse3.2下面开发的,主要的插件就是SWT Designer,这个插件可以在http://www.swt-designer.com/下获取。
大家都知道SWT程序中用的的比较多的组件就是Composite,它相当于Swing中的JPanel功效,但是两者还是有很大的不同,这里不多说。在整个程序中,我将浏览器类Browser实例放在了Composite实例中,而Composite实例与CTabItem实例放在了CTabFolder实例中,并且CTabItem设定了控制器为Composite,具体代码为:
final CTabItem browserTabItem = new CTabItem(tabFolder, SWT.BORDER|SWT.CLOSE); browserTabItem.setText("正在打开..."); if ( Display.getDefault()!=null ) { browserTabItem.setImage(getImage(Display.getDefault(),"ie6.ico")); } final Composite composite = new Composite(tabFolder, SWT.BORDER); composite.setLayout(new FillLayout()); browserTabItem.setControl(composite); final Browser browser = new Browser(composite, SWT.CENTER); |
浏览器browser打开一个网址browser.setUrl(“http://www.baidu.com”);
为了将_blank打开的网页也用本浏览器打开,需要添加browser的打开窗体事件:addOpenWindowListener,这个事件重新打开一个窗体页,将这个窗体页添加到管理网页的CTabFolder中,此后每次打开网页时不管是在本页内打开,还是新开窗口,我们都能将打开的网页控制在自己的浏览器中。
另外为了不重复打开网页,我们可以设定一个简单的网页地质记录的HashMap,专门用来记录网页地址。在本程序中,我并没哟这样做,只是没有时间,等下次有时间再来考虑这件事。
程序运行的效果图
源代码可到:http://download.csdn.net/user/lejuo下载