|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net网页编程比java好。
有些Win32API函数请求将一个函数指针作为本人的参数利用。WindowsAPI函数随后就能够挪用自变量函数(一般是在今后产生特定的事务时)。这一手艺就叫作“回调函数”。回调函数的例子包含窗口历程和我们在打印过程当中设置的回调(为背景打印程序供应回调函数的地点,使其能更新形态,并在需要的时分中断打印)。
另外一个例子是API函数EnumWindows(),它能列举今朝体系内一切顶级窗口。EnumWindows()请求猎取一个函数指针作为本人的参数,然后搜刮由Windows外部保护的一个列表。关于列表内的每一个窗口,它城市挪用回调函数,将窗口句柄作为一个自变量传给回调。
为了在Java里到达一样的目标,必需利用com.ms.dll包里的Callback类。我们从Callback里承继,并作废callback()。这个办法只能靠近int参数,并会前往int或void。办法署名和详细的实行取决于利用这个回调的WindowsAPI函数。
如今,我们要举行的全体事情就是创立这个Callback衍生类的一个实例,并将其作为函数指针传送给API函数。随后,J/Direct会匡助我们主动完成残剩的事情。
上面这个例子挪用了Win32API函数EnumWindows();EnumWindowsProc类里的callback()办法会猎取每一个顶级窗口的句柄,猎取题目笔墨,并将其打印到把持台窗口。- importcom.ms.dll.*;
- importcom.ms.win32.*;
- classEnumWindowsProcextendsCallback{
- publicbooleancallback(inthwnd,intlparam){
- StringBuffertext=newStringBuffer(50);
- User32.GetWindowText(
- hwnd,text,text.capacity()+1);
- if(text.length()!=0)
- System.out.println(text);
- returntrue;//tocontinueenumeration.
- }
- }
- publicclassShowCallback{
- publicstaticvoidmain(Stringargs[])
- throwsInterruptedException{
- booleanok=User32.EnumWindows(
- newEnumWindowsProc(),0);
- if(!ok)
- System.err.println("EnumWindowsfailed.");
- Thread.currentThread().sleep(3000);
- }
- }
复制代码
对sleep()的挪用同意窗口历程在main()加入前完成。
什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net网页编程的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。 |
|