swt嵌套swing
来源:互联网 发布:景区规划图软件 编辑:程序博客网 时间:2024/05/22 03:03
import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingUtilities;import org.eclipse.swt.SWT;import org.eclipse.swt.awt.SWT_AWT;import org.eclipse.swt.browser.Browser;import org.eclipse.swt.browser.OpenWindowListener;import org.eclipse.swt.browser.ProgressEvent;import org.eclipse.swt.browser.ProgressListener;import org.eclipse.swt.browser.WindowEvent;import org.eclipse.swt.layout.FillLayout;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;public class Window extends JFrame {private static final long serialVersionUID = 1L;private JPanel panel;private JButton b1 = new JButton("GO"),b2 = new JButton("Add Data");private JTextField textField = new JTextField(50);static String path = "http://www.baidu.com";static final Display display = Display.getDefault();static Canvas canvas = null;static Shell shell;static Browser browser = null;public Window() {System.setProperty("sun.awt.xembedserver", "true");canvas = new Canvas() {private static final long serialVersionUID = 1L;@Overridepublic void addNotify() {super.addNotify();final Canvas canvas_ = this;display.asyncExec(new Runnable() {public void run() {shell = SWT_AWT.new_Shell(display, canvas);shell.setText("Slashdot");shell.setLayout(new FillLayout());browser = new Browser(shell, SWT.NONE);browser.addProgressListener(new ProgressListener() {public void changed(ProgressEvent event) {}public void completed(ProgressEvent event) {/*String script = "var a = new Array();" +"a = document.getElementsByTagName(\"a\");" +"for(i = 0; i < a.length; i++) {" +"a[i].target = '_self';" +"}";browser.execute(script);*/System.out.println("网页加载完成!");}});browser.addOpenWindowListener(new OpenWindowListener() {@Overridepublic void open(WindowEvent event) {final Browser browser2 = new Browser(shell, SWT.NONE);event.browser = browser2;event.display.asyncExec(new Runnable() {@Overridepublic void run() {browser.setUrl(browser2.getUrl());}});}});browser.setUrl(path);browser.setVisible(true);shell.setSize(canvas_.getWidth(), canvas_.getHeight());shell.open();while(!shell.isDisposed()){if(!display.readAndDispatch()){display.sleep();}}}});}};panel = new JPanel();panel.setLayout(new FlowLayout());panel.add(textField);b1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {path = textField.getText();display.asyncExec(new Runnable() {public void run() {browser.setUrl(path);}});}});panel.add(b1);add(BorderLayout.NORTH, panel);add(BorderLayout.CENTER, canvas);setSize(800, 600);ImageIcon ii = new ImageIcon(this.getClass().getResource("image/debug_wiz.png")); setIconImage(ii.getImage());setTitle("swt嵌入swing");setBounds(200, 200, 800, 600);setVisible(true);}static Window window;public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {window = new Window();}});while(true){if(!display.readAndDispatch()){display.sleep();}}}}
0 0
- swt嵌套swing
- SWT與SWING三言兩語
- AWT Swing SWT
- awt,swing,swt比较
- swing和swt
- SWT or Swing?
- Swing and swt
- AWT、SWT 和 Swing
- AWT,SWT&SWING
- SWT中嵌入Swing
- SWT与Swing区别
- eclispse swing swt
- SWT、Swing 或 AWT
- SWT中使用Swing
- SWT vs Swing,为什么选择Swing
- SWT与Swing的比较
- SWT, Swing and AWT[收藏]
- swt与awt/swing互嵌
- 顺序栈-C++实现
- [leetcode] Repeated DNA Sequences
- Android 触摸及手势操作GestureDetector
- java同步关键字Synchronized 的实现原理
- 基于Linux C语言的字符界面《推箱子》
- swt嵌套swing
- 在一个字符串中找到第一个只出现一次的字符(毒辣写法)
- Android 学习(一)
- ios开发如何让navigationItem自带的返回按钮设置成图片或者不显示文字
- Hibernate三种状态
- SQLServer查询数据加一列序号
- Python学习笔记(一)
- find函数
- 黑马程序员 Java基础——异常