第十八章Swing程序设计

一、Swing概述
Swing 是 Java 平台的用户界面(UI)工具包,它是一种现代化的、跨平台的 UI 工具包,可以使用各种操作系统上的 Java 虚拟机(JVM)来实现,包括 Windows、Linux 和 MacOS 等。Swing 提供了一套完整的 UI 组件,例如按钮、文本框、标签、表格等可以帮助开发人员快速构建 GUI 应用程序。Swing 采用了 MVC(模型-视图-控制器)的设计模式,使得开发人员可以轻松地将数据模型与用户界面相分离,开发出更加模块化、易于维护、可扩展的应用程序。Swing 还提供了自定义组件的开发能力,使得开发人员可以通过继承 Swing 的基类来创建自己的 GUI 组件。
第十八章Swing程序设计_第1张图片

常用的Swing组件: 第十八章Swing程序设计_第2张图片

二、Swing常用窗体

1、JFrame窗体

第十八章Swing程序设计_第3张图片

 例题:第一个窗体程序第十八章Swing程序设计_第4张图片

2,确认框

确认框已经封装好了一套外观样式,弹出后要求用户做出选择操作,用户选择具体选项后,确认框可以返回用户的选择结果,结果以int方式返回。创建确认对话框的方法有以下几种重载形式:

调出带有选项yes,no和cancel的对话框:标题为Select an Option

static int showConfirmDialog(Componenet parentComponent,Object message)

 调出一个由optionType参数确定其中选项数的对话框。

static int showConfirmDialog(Component parentComponent,
        Object message,
        String title,
        int optionType,
        int messageType)

调出一个带有指定图标的对话框,其中的选项数由optionType参数确定。

 

static int showConfirmDialog(Component parentComponent,
        Object message,
        String title,
        int optionType,
        int messageType,
        lcon icon)

3,输入框

第十八章Swing程序设计_第5张图片

此时输入框弹出效果如上所示,用户输入姓名后,单击“确定”按钮,变量name获得的值就是输入框中的文本值。如果用户单击“取消”按钮,变量name获得的值为null。

4,通知框

通知框是最简单的一个对话框,仅弹出提示,不会返回任何值。创建通知框方法有以下几种重载形式:

 第十八章Swing程序设计_第6张图片

 

三、常用布局管理器
开发Swing程序时,在容器中使用布局管理器能够设置窗体的布局,进而控制 Swing 组件的位置和大小。Swing常用的布局管理器为绝对布局管理器、流布局管理器、边界布局管理器和网格布局管理器。

1、null绝对布局
绝对布局也叫 null 布局,其特点是硬性指定组件在容器中的位置和大小,组件的位置通过绝对坐标的方式来指定。使用绝对布局首先要使用 Container.setLayout(null)方法取消容器的布局管理器,然后再使用Component.setBounds(int x,int y int width,int height)方法设置每个组件在容器中的位置和大小。

例题:使用绝对布局定位按钮位置和大小
第十八章Swing程序设计_第7张图片

2、FlowLayouut流布局管理器、第十八章Swing程序设计_第8张图片

 例题:使用流布局排列按钮

3、BorderLayout边界布局管理器

四、常用面板
在Swing程序设计中,面板是一个容器,被用于容纳其他组件,但面板必须被添加到其他到其他容器中。

1、JPanel面板
JPanel面板继承java.awt.Container类。JPanel面板必须在窗体容器中使用,无法脱离窗体显示。

例题:在一个窗体中显示4种布局风格的面板

四、常用面板
在Swing程序设计中,面板是一个容器,被用于容纳其他组件,但面板必须被添加到其他到其他容器中。

1、JPanel面板
JPanel面板继承java.awt.Container类。JPanel面板必须在窗体容器中使用,无法脱离窗体显示。

例题:在一个窗体中显示4种布局风格的面板
第十八章Swing程序设计_第9张图片

2、JScrollPane滚动面板
JScrolIPane 面板是带滚动条的面板,被用于在较小的窗体中显示较大篇幅的内容。需要注意的是,JScrollPane 滚动面板不能使用布局管理器,且只能容纳一个组件。如果需要向 JScrollPane 面板中添加多个组件,那么需要先将多个组件添加到 JPanel 面板,再将JPanel面板添加到JScrollPane 滚动面板。
第十八章Swing程序设计_第10张图片

 

2、JRadioButton单选按钮

Swing单选按钮由JRadioButton对象表示。在Swing程序设计中,需要把多个单选按钮添加到按钮组,当用户选中某个单选按钮时,按钮组中的其他单选按钮将不能被同时选中。

第十八章Swing程序设计_第11张图片

 

七、列表组件
Swing 中提供两种列表组件,分别为下拉列表框 (JComboBox)与列表框 (List)。下拉列表与列表框都是带有一系列列表项的组件,用户可以从中选择需要的列表项。列表框较下拉列表框更直观它将所有的列表项罗列在列表框中。但是,下拉列表框较列表框更为便捷、美观,它将所有的列表项隐藏起来,当用户选用其中的列表项时才会显现出来。本节将详细讲解列表框与下拉列表框的使用。

1、JComboBox下拉列表框
第十八章Swing程序设计_第12张图片

2、JList列表框

 第十八章Swing程序设计_第13张图片

八、文本组件

文本组件在开发Swing程序过程中经常被用到,尤其是文本框件和密码框组件。使用文本组件可以很轻松地操作单行文字、多行文字、口令字段等文本内容。

1、JTextField文本框

 第十八章Swing程序设计_第14张图片

九、表格组件

Swing表格由JTable对象表示,其作用是把数据以表格的形式显示给用户。

1、创建表格

第十八章Swing程序设计_第15张图片

 2、DefaultTableModel表格数据模型

第十八章Swing程序设计_第16张图片

3、维护表格模型
第十八章Swing程序设计_第17张图片

十、事件监听器
前文中一直在讲解组件,这些组件本身并不带有任何功能。例如,在窗体中定义一个按钮,当用户单击该按钮时,虽然按钮可以凹凸显示,但在窗体中并没有实现任何功能。这时需要为按钮添加特定事件监听器,该监听器负责处理用户单击按钮后实现的功能。

1、ActionEvent动作事件第十八章Swing程序设计_第18张图片

在本实例中,为按钮设置了动作监听器。由于获取事件监听时需要获取实现ActionListener接口的对象,所以定义了一个内部类 jbAction 实现 ActionListener 接口,同时在该内部类中实现了actionPerformed0方法,也就是在actionPerformed0方法中定义当用户单击该按钮后实现怎样的功能。

2、KeyE

第十八章Swing程序设计_第19张图片

你可能感兴趣的:(java)