流星的永恒记忆
huqwstar53
全部博文(98)
Sun OS Sparc(0)
Sun OS i86(0)
基础知识(0)
Java Api(6)
SWT(2)
Swing(6)
InstallShield(2)
WindowsInstaller(1)
Vista(2)
串/并行通信(4)
HyperV(1)
IIS 教程(1)
windows常用指令(1)
linux调试(2)
linux下USB开发(3)
linux基础知识(7)
linux编译(4)
linux常用命令(3)
Linux环境进程间(13)
BSD Socket基础知(5)
C/C++面试精华(0)
VS2005(1)
VC(9)
C基础知识(1)
C++基础知识(10)
2010年(7)
2009年(15)
2007年(73)
2006年(3)
飘絮絮絮
丸喵喵
q4993115
Bsolar
cm201210
FGS_fgs
lihe1234
wibnmo
hanshi19
分类: Java
2007-06-26 16:29:58
class SWTPane extends JPanel { DisplayThread displayThread; Browser browser; String ipAddress; private Canvas canvas; Display dis; public SWTPane(String ipAddress) { this.ipAddress = ipAddress; displayThread = new DisplayThread(); displayThread.start(); canvas = new Canvas(); setLayout(new BorderLayout()); add(canvas, BorderLayout.CENTER); } public void addNotify() { super.addNotify(); dis = displayThread.getDisplay(); dis.syncExec(new Runnable() { public void run() { final Shell shell = SWT_AWT.new_Shell(displayThread.getDisplay(), canvas); shell.setLayout(new FillLayout()); browser = new Browser(shell, SWT.NONE); browser.setLayoutData(BorderLayout.CENTER); browser.setUrl(ipAddress); } }); } } class DisplayThread extends Thread { private Display display; Object sem = new Object(); public void run() { synchronized (sem) { display = new Display(); sem.notifyAll(); } swtEventLoop(); } private void swtEventLoop() { while (true) { if (!display.readAndDispatch()) { display.sleep(); } } } public synchronized Display getDisplay() { try { synchronized (sem) { while (display == null) sem.wait(); return display; } } catch (Exception e) { return null; } } }
上一篇:java中调用c(c++)写的dll文件的实现及步骤
下一篇:Swing实现滑动折叠菜单源码
wkl172014-06-22 13:35:15
不带 import *** ..挺好奇你们最初都是如何学Java的?做什么具体例子/项目 吗?
登录 注册