Swing图形界面开发

Swing是一个用于开发Java应用程序用户界面的开发工具包。

以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event。

Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分;包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等;提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行;为了和 AWT 组件区分,Swing 组件在javax.swing.*包下,类名均以 J 开头,例如: JFrame、JLabel、JButton等。

  1. time-line
    GUI概述

            早期计算机系统中,电脑向用户提供的是单调、枯燥、纯字符状态的“命令行界面(CLI)”。就是到现在,我们还可以依稀看到它们的身影:在Windows中开个DOS窗口,就可看到历史的足迹。
            Apple公司率先在电脑的操作系统中实现了图形化的用户界面(Graphical User Interface,简称GUI),但由于Apple公司封闭的市场策略,自己完成电脑硬件、操作系统、应用软件一条龙的产品,与其它PC不兼容。这使得Apple公司错过了一次一统全球PC的好机会。
            著名的Microsoft公司推出了风靡全球的Windows操作系统,它凭借着优秀的图形化用户界面,一举奠定了操作系统标准的地位。这也造就了世界首富---比尔.盖茨和IT业的泰山北斗微软公司。
            在图形用户界面风行于世的今天,一个应用软件没有良好的GUI是无法让用户接受的。而Java语言也深知这一点的重要性,它提供了一套可以轻松构建GUI的工具,工具中可以分为“组件”(component)和“容器”(Container)两类。

  2. time-line
    Swing概述

            Swing API 可扩展 GUI组件,以减轻开发者的生活创造基于JAVA前端/GUI应用。它是建立在AWT API之上,并作为 AWT API 的更换,因为它几乎每一个控制对应 AWT控制。
            Swing 组件遵循MVC(模型-视图-控制器)架构,MVC让负责显示的代码、处理数据的代码、对交互进行响应并驱动变化的代码彼此分离。

  3. time-line
    Swing特点

            重量轻:Swing组件是独立的原生操作系统的API与Swing API控件呈现大多采用纯JAVA代码,而不是底层的操作系统调用。
            丰富的控件:Swing提供了一套丰富的先进的控制系统,如树,JTabbedPane,滑块,颜色选择器,表格控件
            高度可定制:Swing控件可以定制视觉外观是非常简单的方法,独立的内部表示。
            可插拔的外观和感觉:基于Swing GUI应用程序外观和风格基于可用值,可以在运行时改变。

  4. time-line
    组件与容器

            组件:JComponent(Swing的整个可视组件库的基础构造块是JComponent,它是所有组件的父类,并且是一个抽象类,所以我们不能直接创建JComponent对象,但是作为类层次结构的基础。);JFrame(JFrame类是一个顶层窗口,也是一个容器,允许将其他组件添加到它里面,把它们组织起来,并把它们呈现给用户。);JDialog(JDialog类是Window的子类。对话框必须要依赖于某个窗口或组件,当它所依赖的窗口或组件消失,对话框也将消失;当它所依赖的窗口或组件可见时,对话框又会自动恢复。);菜单组件;布局管理。
            中间容器(用来添加组件的轻容,成为中间容器。):JPanel(JPanel类用来创建一个面板对象);JScrollPane(滚动窗格);JSplitPane(拆分窗格);JLayeredPane(分层窗格);JTextField(单行文本框);JButton(按钮组件);JLabel(标签组件);JTable(表格对象);JPopupMenu(弹出式菜单)

  5. time-line
    事件处理

            我们需要知道事件驱动模型的三大要素。
            我们来看一个例子,如果有一天有个老大爷走在路上,一不小心被天上掉下来的花瓶砸到了,并且晕了过去。那么整个过程其实就是一个事件处理流程,而且我们可以非常方便的分析出刚才所提到的事件驱动模型中的三大要素:
            1、被砸晕的这个人其实就是事件源,因为他是能够接受到外部的事件的源体。
            2、监听器就是这个人的大脑神经,因为它会感知到疼痛。
            3、事件处理就是这个人晕死了过去。
            由于事件驱动模型在我们日常生活中是无处不在的,因此Java和其他的编程语言都将这一过程运用到了可视化编程中了。。
            事件驱动模型的三大要素就是:事件源(够接收外部事件的源体)、监听器(能够接收事件源通知的对象)、事件处理程序(用于处理事件的对象)

  6. time-line
    开发步骤

            1、导入Swing包:首先导入Swing包,其次大部分Swing程序用到了AWT的基础底层结构和事件模型,因此需要导入awt和awt.event包。如果图形界面中包括了事件处理,那么还需要导入事件处理包javax.swing.event.
            2、选择界面风格:Swing允许选择程序的图形界面风格常用的有java风格,windows风格等。
            3、设置顶层容器:图形界面至少要有一个顶级Swing容器,为其它Swing组件在屏幕上的绘制和处理事件提供支持。
            4、添加组件:frame.pack();frame.setVisible(true);
            5、处理事件。
            6、辅助技术支持。