fbpx
维基百科

Swing (Java)

Swing是一个为Java设计的GUI工具包,屬於Java基础类的一部分。Swing包括了图形用户界面(GUI)功能,其组件包含:文本框、文本域、按钮、表格、列表等。

Java 5之Swing部件在X_Window系統的使用

Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用Java支持的任意面板。轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。

Hello World程序 编辑

Swing程序

HelloWorldSwing.java

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组件在模拟原生组件外观的同时又保持了平台独立的优点。

架构 编辑

Swing是一个基于Java的跨平台MVC框架。使用单线程模式。此框架还在代码结构层和图形渲染层之间插入了一个抽象层。

可扩展性 编辑

Swing使用了高度模块化的架构,可以通过接口的方式使用各种定制框架来扩展Swing。用户可以通过Java的继承机制重写原始的组件来实现自己的代码。[1]

Swing是一个基于组件的框架,所有的组件都是从javax.swing.JComponent类继承来的。Swing对象通过异步方式发送事件,具有边界属性,并且会响应该组件的一系列方法。Swing组件是Java Beans组件,和Java Beans组件架构完全保持一致。

可定制性 编辑

Swing提供了可编程渲染模型,使用户可以对渲染细节进行控制。一般来看,Swing组件的视觉效果是一些通用元素的组合,比如外框、边距、窗口装饰等等。典型的情况是,用户通过编写代码,指定边框、颜色、背景、透明度等属性来定制一种通用Swing组件(如JTable)。核心组件则会用这些定制的属性来进行绘制。此外,也完全可以制作出非常特殊的GUI控件或是高度自定义的视觉效果。

可配置性 编辑

Swing高度基于运行时的机制以及其间接的组合模式使得它可以在运行时响应对其底层设置的改变。例如,一个Swing的应用程序能在运行时动态地改变界面。此外,用户还能随时应用他们自己的Look And Feel。Look And Feel能够统一地改变当前程序的组件外观,而不用修改任何代码。

和AWT的关系 编辑

Java的早期版本以来,抽象視窗工具包为用户界面组件提供了平台独立的API。在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形視窗系统决定的。

与此相对,Swing组件经常被描述为轻量级的,因为它们不需要操作系统本身所带視窗工具包的原生资源来生成。

Swing API的大部分是AWT的补充扩展而不是直接的代替。Swing用来绘制轻量级组件的核心渲染功能是由Java2D提供的,这是AWT的一部分。然而,轻量级和重量级组件在同一个应用中使用会导致Z-order不兼容。

同SWT的关系 编辑

标准器件工具包 (SWT)是一个最初由IBM开发的工具包,现在由Eclipse基金会维护。SWT的实现同重量级的组件AWT有更多的共同之处。这样的好处是运行开销同所在平台的原生視窗工具包更为接近。

SWT的到来使得Java桌面的开发者们分离为SWT的支持者和Swing的支持者。在6.0版Java中,Swing的新修补专注于同原生視窗平台的逼真度,这可能会直接解决这个问题。

参考文献 编辑

引用 编辑

  1. ^ "LookAndFeel (Java Platform SE 7 )", Oracle Documentation, http://docs.oracle.com/javase/7/docs/api/javax/swing/LookAndFeel.html (页面存档备份,存于互联网档案馆), 5/26/2012

书籍 编辑

  • 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(页面存档备份,存于互联网档案馆
  • Java观感(页面存档备份,存于互联网档案馆
  • Presentation "" by Ben Galbraith
  • Presentation "" by Ben Galbraith
  • Article "" by Sermet Yucel
  • Article "Java桌面开发(页面存档备份,存于互联网档案馆)" by Andrei Cioroianu
  • Article "BlackMamba:一个Swing的实例学习(页面存档备份,存于互联网档案馆)" by Ashwin Jayaprakash
  • Citations from CiteSeer(页面存档备份,存于互联网档案馆
  • 包含了最棒的练习、技巧、诀窍以及如何入门

swing, java, 关于与, 標題相近或相同的条目, 請見, swing, 組合, swing是一个为java设计的gui工具包, 屬於java基础类的一部分, swing包括了图形用户界面, 功能, 其组件包含, 文本框, 文本域, 按钮, 表格, 列表等, java, 5之swing部件在x, window系統的使用swing提供许多比awt更好的屏幕显示元素, 它们用纯java写成, 所以同java本身一样可以跨平台运行, 这一点不像awt, 它们是jfc的一部分, 它们支持可更换的面板和主题, 各种操. 关于与 Swing Java 標題相近或相同的条目 請見 Swing 組合 Swing是一个为Java设计的GUI工具包 屬於Java基础类的一部分 Swing包括了图形用户界面 GUI 功能 其组件包含 文本框 文本域 按钮 表格 列表等 Java 5之Swing部件在X Window系統的使用Swing提供许多比AWT更好的屏幕显示元素 它们用纯Java写成 所以同Java本身一样可以跨平台运行 这一点不像AWT 它们是JFC的一部分 它们支持可更换的面板和主题 各种操作系统默认的特有主题 然而不是真的使用原生平台提供的设备 而是仅仅在表面上模仿它们 这意味着你可以在任意平台上使用Java支持的任意面板 轻量级元件的缺点则是执行速度较慢 优点就是可以在所有平台上采用统一的行为 目录 1 Hello World程序 2 历史 3 架构 3 1 可扩展性 3 2 可定制性 3 3 可配置性 4 和AWT的关系 5 同SWT的关系 6 参考文献 6 1 引用 6 2 书籍 7 外部链接Hello World程序 编辑Swing程序HelloWorldSwing java 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组件在模拟原生组件外观的同时又保持了平台独立的优点 架构 编辑Swing是一个基于Java的跨平台MVC框架 使用单线程模式 此框架还在代码结构层和图形渲染层之间插入了一个抽象层 可扩展性 编辑 Swing使用了高度模块化的架构 可以通过接口的方式使用各种定制框架来扩展Swing 用户可以通过Java的继承机制重写原始的组件来实现自己的代码 1 Swing是一个基于组件的框架 所有的组件都是从javax swing JComponent类继承来的 Swing对象通过异步方式发送事件 具有边界属性 并且会响应该组件的一系列方法 Swing组件是Java Beans组件 和Java Beans组件架构完全保持一致 可定制性 编辑 Swing提供了可编程渲染模型 使用户可以对渲染细节进行控制 一般来看 Swing组件的视觉效果是一些通用元素的组合 比如外框 边距 窗口装饰等等 典型的情况是 用户通过编写代码 指定边框 颜色 背景 透明度等属性来定制一种通用Swing组件 如JTable 核心组件则会用这些定制的属性来进行绘制 此外 也完全可以制作出非常特殊的GUI控件或是高度自定义的视觉效果 nbsp Swing个性化绘制1 nbsp Swing个性化绘制2 nbsp Swing个性化绘制3可配置性 编辑 Swing高度基于运行时的机制以及其间接的组合模式使得它可以在运行时响应对其底层设置的改变 例如 一个Swing的应用程序能在运行时动态地改变界面 此外 用户还能随时应用他们自己的Look And Feel Look And Feel能够统一地改变当前程序的组件外观 而不用修改任何代码 和AWT的关系 编辑Java的早期版本以来 抽象視窗工具包为用户界面组件提供了平台独立的API 在AWT中 每个组件都由一个原生的等同组件生成和控制 这个原生组件是由当前的图形視窗系统决定的 与此相对 Swing组件经常被描述为轻量级的 因为它们不需要操作系统本身所带視窗工具包的原生资源来生成 Swing API的大部分是AWT的补充扩展而不是直接的代替 Swing用来绘制轻量级组件的核心渲染功能是由Java2D提供的 这是AWT的一部分 然而 轻量级和重量级组件在同一个应用中使用会导致Z order不兼容 同SWT的关系 编辑标准器件工具包 SWT 是一个最初由IBM开发的工具包 现在由Eclipse基金会维护 SWT的实现同重量级的组件AWT有更多的共同之处 这样的好处是运行开销同所在平台的原生視窗工具包更为接近 SWT的到来使得Java桌面的开发者们分离为SWT的支持者和Swing的支持者 在6 0版Java中 Swing的新修补专注于同原生視窗平台的逼真度 这可能会直接解决这个问题 参考文献 编辑引用 编辑 LookAndFeel Java Platform SE 7 Oracle Documentation http docs oracle com javase 7 docs api javax swing LookAndFeel html 页面存档备份 存于互联网档案馆 5 26 2012 书籍 编辑 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包含了最棒的练习 技巧 诀窍以及如何入门 取自 https zh wikipedia org w index php title Swing Java amp oldid 79809409, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。