Swing (Java):修订间差异
小 r2.5.2) (機器人 修改: pt:Swing (Java) |
小 →程序 |
||
第7行: | 第7行: | ||
== 程序 == |
== 程序 == |
||
''Swing程序'' |
''Swing程序'' |
||
'' HelloWorldSwing 的代码:'' |
'' HelloWorldSwing 的代码:'' |
||
<source lang="Java"> |
|||
<pre> |
|||
import javax.swing.*; |
import javax.swing.*; |
||
public class HelloWorldSwing { |
public class HelloWorldSwing { |
||
/** |
/**{ |
||
* 创建并显示GUI。 出于线程安全的考虑, |
* 创建并显示GUI。 出于线程安全的考虑, |
||
* 这个方法在事件调用线程中调用。 |
* 这个方法在事件调用线程中调用。 |
||
第47行: | 第43行: | ||
} |
} |
||
} |
} |
||
</ |
</source> |
||
== 历史 == |
== 历史 == |
2011年2月27日 (日) 09:11的版本
Swing 是一个为Java设计的GUI工具包。 Swing 是 JAVA基础类 的一部分。 Swing 包括了图形用户界面 (GUI) 器件 如:文本框,按钮,分隔窗格和表。
SWING 提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。 它们是JFC的一部分。 它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。 轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。
程序
Swing程序
HelloWorldSwing 的代码:
import javax.swing.*;
public class HelloWorldSwing {
/**{
* 创建并显示GUI。 出于线程安全的考虑,
* 这个方法在事件调用线程中调用。
*/
private static void createAndShowGUI() {
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
JFrame frame = new JFrame("HelloWorldSwing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Add the ubiquitous "Hello World" label.
JLabel label = new JLabel("Hello World");
frame.getContentPane().add(label);
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
历史
互联网基础类(IFC)是网景公司最初为Java开发的图形库,第一次发布于1996年12月16日。
在1997年4月2日,太陽公司和网景公司宣称他们要将IFC和其他技术合并形成Java基础类。作为IFC最初提供组件的附加品,Swing引进了一个機制:在不改变大量的程序代码前提下允许程序中每个组件面板的变化。支持可更换面板技术的引入允许Swing组件在模拟原生组件外观的同时又保持了平台独立的优点。
同AWT的关系
Java的早期版本以来, 抽象視窗工具包 为用户界面组件提供了平台独立的API。在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形視窗系统决定的。
与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带視窗工具包的原生资源来生成。
Swing API 的大部分是AWT的补充扩展而不是直接的代替。Swing用来绘制轻量级组件的核心渲染功能是由Java2D提供的,这是AWT的一部分。然而,轻量级和重量级组件在同一个应用中使用会导致Z-order不兼容。
同 SWT 的关系
标准器件工具包 是一个最初由IBM开发的工具包,现在由Eclipse基金会维护。 SWT的实现同重量级的组件AWT有更多的共同之处。这样的好处是运行开销同所在平台的原生視窗工具包更为接近。
SWT的到来使得Java桌面的开发者们分离为SWT的支持者和Swing的支持者。 在6.0版Java中,Swing的新修补专注于同原生視窗平台的逼真度,这可能会直接解决这个问题。
参考
- Matthew Robinson:Swing, Manning, ISBN 1-930110-88-X
- David M. Geary:Graphic Java 2, Volume 2: Swing, Prentice Hall, ISBN 0-13-079667-0
- James Elliott,Robert Eckstein,Marc Loy,David Wood,Brian Cole:Java Swing, O'Reilly, ISBN 0-596-00408-7
- Kathy Walrath,Mary Campione,Alison Huml,Sharon Zakhour:The JFC Swing Tutorial: A Guide to Constructing GUIs, Addison-Wesley Professional, ISBN 0-201-91467-0
外部链接
- Swing教程
- The Swing Connection
- JavaDesktop
- Java观感
- ClientJava.com
- Presentation "Swing专家编程:创建优雅的程序,第一部分" by Ben Galbraith
- Presentation "Swing专家编程:创建优雅的程序,第二部分" by Ben Galbraith
- Article "什么叫”Swing很慢“?" by Sermet Yucel
- Article "Java桌面开发" by Andrei Cioroianu
- Article "BlackMamba:一个Swing的实例学习" by Ashwin Jayaprakash
- 有关AWT/Swing的文章
- Citations from CiteSeer
- Swing wiki 包含了最棒的练习、技巧、诀窍以及如何入门