前言

最近要做个一java的学生管理系统,要一段很长时间,还是从零开始,所以就记个笔记,记录一下自己的学习知识,感觉和之前学的网页面有一些知识的关联。

采用一个java+Swing的框架,

Swing

Swing 是一个为Java设计的GUI工具包。

GUI(图形用户界面)为程序提供图形界面,它最初的设计目的是为程序员构建一个通用的 GUI,使其能够在所有的平台上运行,但 Java 1.0 中基础类 AWT(抽象窗口工具箱)并没有达到这个要求,于是 Swing 出现了,它是 AWT 组件的增强组件,但是它又不能完全替代 AWT 组件,这两种组件需要同时出现在一个图形用户界面中。

Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。

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

我理解的就是一个模拟的软件,类似于UI网页设计

Swing包

有三个比较重要的包,Component类,Cotainer类,JComponent类,
层次和继承关系:
Java.lang.Object->Java.awt->Component->Java.awt.Container->Javax.swing.JComponent

Swing 组件中的大多数 GUI 组件都是 Component 类的直接子类或间接子类,JComponent 类是 Swing 组件各种特性的存放位置,这些组件的特性包括设定组件边界、GUI 组件自动滚动等。

Swing 组件中的最重要的父类是 Container 类,Container 类又有两个最重要的子类,分别为 java.awt.Window 与 java.awt.Frame。除了以往的 AWT 类组件会继承这两个类之外,现在的 Swing 组件同样也会扩展了这两个类

常见的组件

JButton :按钮,可以带一些图片或者文字
JCheckBox :复选框
JComBox :下拉列表框,可以在下拉显示区域多个选项
JFrame : 框架类
JDialog :对话框
JLable :标签组件
JRadioButton :单选按钮
JList :能够在用户中显示一些列条目的组件
JTextField :文本框
JPasswordField :密码框
JTextArea :文本区域
JOptionPane :一些面板

常见的顶层窗体

窗体作为 Swing 应用程序中组件的承载体,处于非常重要的位置。Swing 中常用的窗体包括 JFrame 和 JDialog 窗体

JFrame框架

JFrame 窗体是一个容器,它是 Swing 程序中各个组件的载体,因此,可以将 JFrame 看作是承载这些 Swing 组件的容器。

在开发应用程序时,可以通过继承 java.swing.JFrame 类来创建一个窗体,然后再在窗体中添加组件,同时为组件设置事件。由于该窗体继承了 JFrame 类,所以它拥有最大化、最小化和关闭按钮。

JFrame frame = new JFrame(title);
Container container = frame.getContentPane();
  • frame:JFrame 类的对象。
  • container:Container 类的对象,可以使用 JFrame 对象调用getContentPane() 方法获取。

我们应该有这样的一个概念,就是 Swing 组件的窗体通常与组件和容器相关,所以在 JFrame 对象创建完成后,需要调用 getContentPane() 方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器。通常这个容器用来包含和显示组件。如果需要将组件添加至容器,那么可以使用来自 Container 类的 add() 方法进行设置,示例代码如下:

container.add(new JButton("按钮"));                     //JButton按钮组件