`

【原创】swing 按钮点击 调用swt窗口(SWT浏览器)browser

阅读更多

 

     网上搜索swing 和swt 都是关于两者的区别及介绍,有时候想混用没有详细介绍。有swt_awt桥,albireo 等方法。

下面我介绍我得解决方法,为了弄这个昨晚到两点才睡,希望看了的给我留言点鼓励哦:

 

package  db.common.tool;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.io.File;

import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

import com.swtdesigner.SWTResourceManager;

public class MyBroswer {

	
	public MyBroswer() {
		
	}
	public MyBroswer(File file,String title) {
		super();
		
		   
		    Display display = new Display();
		    final Shell shell = new Shell(display);
		    shell.setImage(SWTResourceManager.getImage(MyBroswer.class, "/db/gui/icon/ S.gif"));
		    shell.setText(title+"浏览");
		    shell.setSize(1220, 831);	
		    Dimension dem=Toolkit.getDefaultToolkit().getScreenSize();
		    int sHeight=dem.height;
		    int sWidth=dem.width;
		    int fHeight=shell.getSize().y;
		    int fWidth=shell.getSize().x;
		    shell.setLocation((sWidth-fWidth)/2, (sHeight-fHeight)/2);

		    shell.setLayout(new FormLayout());

		    final Browser browser = new Browser(shell, SWT.BORDER);
		    {
		    	FormData formData = new FormData();
		    	formData.top = new FormAttachment(0, 10);
		    	formData.bottom = new FormAttachment(100, -10);
		    	formData.left = new FormAttachment(0, 10);
		    	formData.right = new FormAttachment(100, -10);
		    	browser.setLayoutData(formData);
		    }

		    shell.open();
		    String path=file.getAbsolutePath();
		    browser.setUrl(path);
		    
		    while (!shell.isDisposed()) {
		      if (!display.readAndDispatch())
		        display.sleep();
		    }
		    display.dispose();
	}
	

public static void main(String[] args) {
	 File file = new File("data\\4\\law\\Index.html"); 
//	 File file = new File("DATA\\3\\zhanx_imglist.asp.htm");
//	File file = new File("DATA\\1\\sc35.htm");
	new MyBroswer(file,"标题");
  }	
}

 以上是SWT 浏览器,可以单独运行没有问题,关键是swing控件调用!一定要用线程调用。

	class MyBrowserFlagThread extends Thread {
		
		public void run() {
			File file = new File("DATA\\1\\sc35.htm");
			new MyBroswer(file,"世界国旗大全");
		}
	}

 swing JButton 调用:

button.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {

						MyBrowserFlagThread ut = new MyBrowserFlagThread( );
						ut.start();
					}
				});
 

 

3
0
分享到:
评论
5 楼 z995204127 2014-08-31  
我去,发多了,太激动
4 楼 z995204127 2014-08-31  
楼主,我去,太尼玛给力了,我搞了一天没搞定,原来要用一个线程包装一下。万分感谢,我去。
3 楼 z995204127 2014-08-31  
楼主,我去,太尼玛给力了,我搞了一天,原来要用一个线程包装下。OK了,十分感谢
2 楼 pywepe 2011-12-25  
不知所云
1 楼 zqfddqr 2010-11-05  
留个记号谢谢博主

相关推荐

    Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)

    2. **创建Browser实例**:使用SWT的`Browser`类创建一个浏览器实例,这个实例可以嵌入到Swing的组件中。你可以指定浏览器的类型,例如选择使用WebKit引擎。 3. **设置浏览器容器**:将`Browser`实例放入Swing的容器...

    SWT开发的浏览器(Java)--源代码

    与Java标准库中的AWT和Swing不同,SWT直接调用操作系统的API,因此在性能和外观上更接近原生应用。这使得使用SWT创建的程序具有更好的响应速度和平台一致性。在我们的浏览器项目中,这一特性使得程序能够在不同的...

    SWT java浏览器

    - **保存**:SWT浏览器组件允许用户保存当前页面到本地文件系统,这通常通过提供一个菜单项或按钮来实现,调用`Browser`对象的`saveAs`方法完成。 - **打开**:用户可以打开新的URL,通过`setUrl`方法将指定的URL...

    基于SWT组件的IE内核Java简易浏览器

    SWT是Java的窗口系统接口,它直接调用操作系统提供的API,从而提供了一种与本机应用程序类似的外观和感觉。SWT组件包括按钮、文本框、滚动条等,它们能够与Windows、Linux、Mac OS X等多种操作系统平台无缝对接。SWT...

    java调用chrome浏览器内核cef实现,非jxbrowser

    Java调用Chrome浏览器内核是开发桌面应用时一个常见的需求,尤其在需要嵌入Web页面或者与Web内容交互的场景下。CEF(Chromium Embedded Framework)是一个开源项目,它允许开发者将Google Chrome的Blink渲染引擎和V8...

    SWT或Applet打开Office文件

    2. **SWT或Applet客户端**:在SWT应用中,你可以创建一个按钮或菜单项,当用户点击时触发文件选择对话框,获取到本地文件路径后,发送请求到服务器端。在Applet中,用户可能需要通过上传文件的方式,或者通过JNLP...

    java 用swt调用com组建之ie组建加强版

    1. **创建SWT Browser实例**:SWT提供了一个`Browser`类,可以用来创建一个ActiveX版本的浏览器实例,这在很多情况下等同于嵌入了一个IE实例。通过`Display`和`Shell`对象,我们可以设置浏览器的大小、位置以及其在...

    DJNativeSwing-SWT.jar,DJNativeSwing.jar下载

    DJNativeSwing-SWT.jar是这个项目的一部分,它实现了DJNativeSwing与SWT之间的桥接,允许Swing组件与SWT的Web浏览器控件进行通信。 SWT是Eclipse基金会维护的一个开源库,它是Java AWT和Swing之外的另一种GUI工具包...

    browser.rar_浏览器_Java_

    当用户点击这些按钮时,对应的事件处理器会被调用,执行相应的功能代码,这在Java的事件驱动编程模型中非常常见。 总结起来,这个项目是一个基于Java和SWT的简单浏览器实现,它提供了基本的网页浏览功能,如前进、...

    HTML做UI的客户端-买卖精灵

    与AWT和Swing不同,SWT直接调用操作系统API,因此它的性能通常更好,同时能更好地融入各个操作系统环境。 **HTML UI** 在客户端应用中的使用,主要是利用了浏览器引擎(如Webkit或Gecko)来渲染用户界面。在这个...

    java实现网页截图含DJNativeSwing组件JAR包

    3. **渲染网页**:使用DJNativeSwing提供的功能,如`com.dj.nativeswing.swt.util.JWebBrowser`,在Swing组件中渲染网页,这一步骤通常涉及SWT的`org.eclipse.swt.browser.Browser`类。 4. **捕获屏幕**:调用操作...

    DJNativeSwing-jar包合集

    DJNativeSwing-SWT结合了Swing和SWT的优点,利用SWT的原生组件来提供更丰富的界面效果,特别是在实现浏览器组件时,可以利用SWT的`Browser`类,提供更好的性能和兼容性。 - **DJNativeSwing.jar**:这是...

    java的常见问题及解决方法定义.pdf

    在Java应用中使用DJ Native Swing并嵌入浏览器时,可能会遇到“Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3536 or swt-win32 in swt.library.path, java.library.path or the jar ...

    java的常见问题及解决方法参照.pdf

    当Java应用在Linux下运行DJ Native Swing并嵌入浏览器时,如果报"Exception in thread "main" java.lang.UnsatisfiedLinkError",这意味着SWT库版本不正确。你需要为不同的操作系统(如Windows和Linux)使用相应的...

    java源码包---java 源码 大量 实例

     各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP  基于JAVA的UDP服务器模型源代码...

    java源码包2

     各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP  基于JAVA的UDP服务器模型源...

    java源码包3

     各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP  基于JAVA的UDP服务器模型源...

    java源码包4

     各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP  基于JAVA的UDP服务器模型源...

    JAVA上百实例源码以及开源项目源代码

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...

Global site tag (gtag.js) - Google Analytics