跳转到内容

Swing (Java):修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Xqbot留言 | 贡献
r2.5.2) (機器人 修改: pt:Swing (Java)
Xttts留言 | 贡献
第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行:
}
}
}
}
</pre>
</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的新修补专注于同原生視窗平台的逼真度,这可能会直接解决这个问题。

参考

外部链接