Topic: 请教: Swing 是完全独立的 GUI 吗? |
Print this page |
1.请教: Swing 是完全独立的 GUI 吗? | Copy to clipboard |
Posted by: Lawme Posted on: 2004-11-01 05:41 在 Linux 下,如果不安装 xWindow,Swing 能正常工作吗? 如果行,那 Java 太牛了;不行,则 Swing 意义不大了。呵呵! |
2.Re:请教: Swing 是完全独立的 GUI 吗? [Re: Lawme] | Copy to clipboard |
Posted by: helloworld Posted on: 2004-11-01 06:10 不安装 X Window是不能工作的. BTW: 你把ms windows 程序,放到dos下,试试. |
3.Re:请教: Swing 是完全独立的 GUI 吗? [Re: Lawme] | Copy to clipboard |
Posted by: Lawme Posted on: 2004-11-01 06:28 helloworld: 谢谢! |
4.Re:请教: Swing 是完全独立的 GUI 吗? [Re: Lawme] | Copy to clipboard |
Posted by: kavinwang Posted on: 2004-11-01 08:50 楼主没有明白应用程序,gui,和运行平台的关系。 在unix平台,如果xwindow没有启动,一般在gui程序运行时会启动的。 xwindow和window都是gui,给gui程序表现的平台。 在非gui的平台下,除非你直接对显卡编程,一般是不会显示gui的。 |
5.Re:请教: Swing 是完全独立的 GUI 吗? [Re: Lawme] | Copy to clipboard |
Posted by: Lawme Posted on: 2004-11-01 23:07 kavinwang : 谢谢你的解释。 AWT、Swing 与 “平台”的关系,请多指教一些。 教科书说,AWT 是一套 GUI,依赖平台提供的机制;Swing 则是与平台无关的GUI。 如果 Swing 离不开平台的支持,那么,如何解释它的独立性,它与 AWT 的区别体现在哪里? |
6.Re:请教: Swing 是完全独立的 GUI 吗? [Re: Lawme] | Copy to clipboard |
Posted by: kavinwang Posted on: 2004-11-02 08:42 awt和平台的实现是相关的,awt的实现是通过peer实现的,如果你了解虚拟工厂的模式你就会知道了。而这个peer是平台相关的,不同的平台的具体实现是不同的。 swing是在awt的基础上实现的,简略的讲,所有的swing都是awt的component的子类。所有的swing都是awt的很少一部分的子类扩展。而他的实现和显示是全部重新实现的,和具体的平台无关。有一点,component类的实现在所有的平台都差不多。 而awt是重量级的就是说他们和底层平台有很大的关系,swing是轻量级的,他们只是awt的很少一部分,和具体的平台不相关。 上面的内容可能不太正确,但我想不会影响你的理解! 如果你认为component类不对,那你可认为是Container类。 |
7.Re:请教: Swing 是完全独立的 GUI 吗? [Re: kavinwang] | Copy to clipboard |
Posted by: Lawme Posted on: 2004-11-02 09:32 swing是在awt的基础上实现的,简略的讲,所有的swing都是awt的component的子类。所有的swing都是awt的很少一部分的子类扩展。 Java 官方文档说 AWT 是: java.lang.Object --- java.awt 而 Swing 是: javax.swing 看不出二者有何关联。 另外,从网上介绍 SWT 的文章中,看到介绍二者的内容,更明确说是两个不同的“框架”: 在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit). 虽然AWT框架也使用的是原生窗口部件(native widgets),但是它一直未能突破LCD问题。LCD问题导致了一些主要平台特征的遗失。如果你不明白的话(其实我也没明白),换句话说,如果平台A 有窗口部件(widgets)1–40,而平台B有窗口部件(widgets)20–25,那么跨平台的AWT框架只能提供这两个窗口部件集的交集。 为解决这个问题,Sun又创建了一个新的框架。这个框架不再使用原生窗口部件,而是使用仿真窗口部件(emulated widgets)。这个方法虽然解决了LCD问题,并且提供了丰富的窗口部件集,但是它也带来了新的问题。例如,Swing应用程序的界面外观不再和原生应用程序的外观相似。虽然在JVM中这些Swing应用程序已经得到了最大程度的性能改善,但是它们还是存在着其原生对应物所不具有的性能问题。并且,Swing应用程序消耗太多的内存,这样Swing不适于一些小设备,如PDA和移动电话等。 IBM进行了尝试以彻底解决AWT和Swing框架带来的上述问题。最终,IBM创建了一个新的GUI库,这就是SWT。SWT框架通过JNI来访问原生窗口部件。如果在宿主(host)平台上无法找到一个窗口部件,SWT就会自动地模拟它。 http://www.pconline.com.cn/pcedu/empolder/gj/java/0410/469859.html |
8.Re:请教: Swing 是完全独立的 GUI 吗? [Re: Lawme] | Copy to clipboard |
Posted by: kavinwang Posted on: 2004-11-02 11:00 简单的说,swing就是完全模拟原生界面。 对于swt和awt,它们的根源都是一样,都是本地原生的,不过一个提供jni,一个再jvm中实现,根本过程是一样的,可能ibm在这方面做的要好些,但swing有很多东西是awt和swt不可比拟的,比如,gui的东西你可完全自己实现一套,虽说和原生的界面不同,但你也和认为它们别致,突破平台,另类等,看你怎么认为。在这方面,swing可以提供很多样式,比如metal,windows还有其它等,用swt和awt几乎没办法实现。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |