📜  Java Swing 简介

📅  最后修改于: 2022-05-13 01:54:35.921000             🧑  作者: Mango

Java Swing 简介

Swing是一个Java基础类 JFC] 库和抽象窗口工具包 [AWT] 的扩展。 Swing 提供了比 AWT 大大改进的功能、新组件、扩展的组件特性、出色的事件处理以及拖放支持。

Java Swing介绍

Swing 的用户界面 [U1] 组件的数量大约是 AWT 的四倍,并且是标准Java发行版的一部分。根据当今的应用程序 GUI 要求,AWT 是一种有限的实现,不能提供开发现代商业应用程序所需的复杂 GUI 所需的组件。 AWT 组件集有很多错误,与等效的 Swing 资源相比,确实占用了大量的系统资源。 Netscape 引入了它的 Internet Foundation Classes [IFC] 库以用于Java。它的类在为商业应用程序创建 GUI 的程序员中非常流行。

  • Swing 是一组 API(API-Set Of Classes and Interfaces)
  • 提供 Swing 用于设计图形用户界面
  • Swing 是 AWT(抽象窗口工具包)的扩展库
  • 包括新的和改进的组件,这些组件一直在增强 GUI 的外观和功能
  • Swing 可用于构建(开发)独立的 swing GUI 应用程序,也可用作 Servlet 和 Applet
  • 它采用模型/视图设计架构
  • Swing 比 AWT 更便携、更灵活,Swing 是建立在 AWT 之上的
  • Swing 完全用Java编写
  • Java Swing 组件是平台无关的并且 Swing 组件是轻量级的
  • Swing 支持 Pluggable 外观和感觉 Swing 提供更强大的组件
  • 例如表格、列表、滚动窗格、颜色选择器、选项卡窗格等
  • MVC 之后的进一步摇摆

许多程序员认为 JFC 和 Swing 是一回事,但事实并非如此。

JFC 包含 Swing [一个 UI 组件包] 和相当多的其他项目:

  • 剪切和粘贴:剪贴板支持
  • 辅助功能:旨在为残障用户开发 GUI
  • 桌面颜色功能已在Java 1.1 中首次引入
  • Java 2D:改进了颜色、图像和文本支持

摇摆班的特点

  • 可插拔的外观和感觉
  • 使用 MVC 架构
  • 轻量级组件
  • 平台无关
  • 高级功能,例如 JTable、JTabbedPane、JScollPane 等
  • Java是一种独立于平台的语言,可以在任何客户端机器上运行,GUI 的外观和感觉,由特定于平台的 O/S 拥有和交付,不会影响使用 Swing 组件构建的应用程序的 GUI
  • 轻量级组件:从 JDK 1.1 开始,其 AWT 支持轻量级组件开发。对于有资格成为轻量级的组件,它不能依赖于任何非 Java [基于 O/s 的)系统类。 Swing 组件有自己的视图,由 Java 的外观类支持
  • Pluggable Look and Feel:此功能使用户能够在不重新启动应用程序的情况下切换 Swing 组件的外观。 Swing 库支持在程序运行的所有平台上保持相同的组件外观。 Swing 库提供了一个 API,它在确定应用程序的 GUI 的外观和感觉方面提供了真正的灵活性

Swing 类层次结构

MVC 连接

  • 通常,视觉组件是三个不同方面的组合:
    1. 组件在屏幕上呈现时的外观
    2. 组件对用户做出反应的方式
    3. 与组件关联的状态信息
  • 多年来,一种组件架构已证明自己非常有效:-模型-视图-控制器或简称MVC
  • 在 MVC 术语中,模型对应于与 Component 关联的状态信息
  • 视图确定组件在屏幕上的显示方式,包括受模型当前状态影响的视图的任何方面。
  • 控制器确定组件如何对用户做出反应

最简单的 Swing 组件具有远远超出 AWT 组件的功能,如下所示:

  • 摆动按钮和标签可以显示图像而不是文本或除了文本之外
  • 大多数 Swing 组件周围的边框都可以轻松更改。例如:很容易在 Swing 标签的外部放置一个 1 像素的边框
  • 摆动组件不必是矩形的。例如,按钮可以是圆形的
  • 现在,屏幕阅读器等最新的 Assertive 技术可以轻松地从 Swing 组件中获取信息。例如:屏幕阅读器工具可以轻松捕获 Swing 按钮或标签上显示的文本

Swing Class的组成部分任务的百分比

ClassDescription
ComponentA Component is the Abstract base class for about the non menu user-interface controls of SWING. Components are represents an object with graphical representation
ContainerA Container is a component that can container SWING Components
JComponentA JComponent is a base class for all swing UI Components In order to use a swing component that inherits from JComponent, component must be in a containment hierarchy whose root is a top-level Swing container
JLabelA JLabel is an object component for placing text in a container
JButtonThis class creates a labeled button
JColorChooserA JColorChooser provides a pane of controls designed to allow the user to manipulate and select a color
JCheckBoxA JCheckBox is a graphical(GUI) component that can be in either an on-(true) or off-(false) state
JRadioButtonThe JRadioButton class is a graphical(GUI) component that can be in either an on-(true) or off-(false) state. in the group
JListA JList component represents the user with the scrolling list of text items
JComboBoxA JComboBox component is Presents the User with a show up Menu of choices
JTextFieldA JTextField object is a text component that will allow for the editing of a single line of text 
JPasswordField                  A JPasswordField object it is a text component specialized for password entry
JTextAreaA JTextArea object s a text component that allows for the editing of multiple lines of text
ImagelconA ImageIcon control is an implementation of the Icon interface that paints Icons from Images
JScrollbarA JScrollbar control represents a scroll bar component in order to enable users to Select from range values
JOptionPane    JOptionPane provides set of standard dialog boxes that prompt users for a value or Something
JFileChooser  A JFileChooser it Controls represents a dialog window from which the user can select a file.
JProgressBar               As the task progresses towards completion, the progress bar displays the tasks percentage on its completion
JSlider A JSlider this class is lets the user graphically(GUI) select by using a value by sliding a knob within a bounded interval.
JSpinner A JSpinner this class is a single line input where the field that lets the user select by using a number or an object value from an ordered sequence