第十八章 Swing程序设计

本文介绍了Swing库在GUI应用程序开发中的关键元素,包括(JFrame)窗体、JDialog对话框、常用的布局管理器(FlowLayout,BorderLayout,GridLayout)以及各类组件(如JPanel,JScrollPane,JTable等),并提及了事件监听器如ActionEvent和键盘鼠标事件处理。
摘要由CSDN通过智能技术生成

Swing主要用于开发GUI程序,GUT是应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮等图形界面元素。

Swing常用窗体 

1.JFrame窗体

JFrame jf=new JFrame();

jf.setTitle("创建一个JFrame窗体");

Container container=jf.getContentPane();

创建窗体后,先调用getContentPane()方法将窗体转换为容器,在调用add()或remove()方法添加或删除容器中的组件。

cd612894e5034520b751f667697b2fbc.png

 2.JDialog 对话框

JDialog对话框功能是从一个窗体中弹出另一个窗体

7dffe995f3cd49cd8a0b175bd8280297.png

 

e4af9d5465b343ba83b52440e5072cdd.png

 3.自定义对话框

集合输入框,确认框,通知框三个功能

 确认框

b6f9044c05684bcc9c483a78be345200.png

 输入框

d4e187cb5834402cacfa6253e4abe5a2.png

通知框

c61fe13ffd8149c88d28473f4e9ec92d.png 

 常用布局管理器 

null绝对布局

其特点是硬性指定组件在容器中的大小位置,组件的位置通过绝对坐标的方式来指定,使用绝对布局首先要取消Container.setLayout(null)方法取消容器的布局管理器。

e713167a961e42fba7ce2d4d398f6f70.png

 FlowLayout流布局管理器 

使用流布局管理器拜访组件是,组件被从左往右摆放,溢出组件会被移到当前行的下一行

e617527a81754758b96855ddceba4434.png

 BorderLayout边界布局管理器

容器默认的布局管理器是边界布局(BorderLayout)管理器,边界布局管理器把容器分为东南、西、北、中5个区域,如果使用了边界布局管理器,在向容器中添加组件时,如果不指定要把组件添加到哪个区域那么当前组件会被默认添加到 CENTER 区域; 如果向同一个区域中添加多个组件,那么后放入的组件会覆盖先放入的组件。

a5399316d9804785bd8e7c7ece65fd3c.png

 GridLayout网格布局管理器 

网格布局管理器能够把容器划分为网格,组件可以按行、列进行排列。在网格布局管理器中,网格的个数由行数和列数决定,且每个网格的大小都相同。例如,一个两行两列的网格布局管理器能够产生4 个大小相等的网格。组件从网格的左上角开始,按照从左到右、从上到下的顺序被添加到网格中,且每个组件都会填满整个网格。改变窗体大小时,组件的大小也会随之改变。

a344b3e8e8624181a075b3f371001e8f.png

 

常用面板
面板是一个容器,被用于容纳其他组件,但面板必须添加到其他容器中

JPanel面板
JPanel面板必须在窗体容器中使用,无法脱离窗体显示

ffb495d742fc441f9c3e23ea31bcb3e2.png

bfa8f621fc6f470cadea450ac0760f5c.png 

e99f9b5b535546af91338bf6890cfe84.png 

 JScrollPane滚动面板

用于显示较大篇幅的内容, 滚动面板不能使用布局管理器,且只能容纳一个组件

7520f6a3d4bf47f48df510d3cb85b762.png

beb75a6dd8ec4ae3930283dfd8609ea9.png 

 按钮组件 

 JCheckBox复选框

579b87e969e54be990a628348e942efc.png

4c3a6645fe8d4661b8b20e7f9de0124e.png 

87b1e2d799944a35948886f1ce8e12b9.png 

列表组件 

JComboBox下拉列表

de6628812ebd4e97bc523fb8185effcd.png

 JTextArea文本域

接受多行文本输入

f1a986ac55ce495892a34f00a3a25cd9.png

 表格组件

创建表格

JTable(Object[] rowData,Object[] columnNames)

rowData:存储表格数据第二列

columnNames:存储表格列名的一维数组

86660c667de2488897267f25005384ff.png

 DeafaultTableModel表格数据模型

表格被创建后还可以使用 setRowSorter0方法为表格设置排序器:当单击表格的某一列的列头时,在这一列的列名后将出现三角形标记,说明将按升序排列表格中的所有行;当再次单击这一列的列头时,标记将变为三角形,说明按降序排列表格中的所有行

e783f2c41d7a4952b63c81b49efb5b12.png

340114bb7d874daeaee634a1dbeb8580.png 

 维护表格模型

表格中的数据内容需要予以维护,如使用 getValueAt0方法获得表格中某一个单元格的值,使用addRow0方法向表格中添加新的行,使用 setValueAt0方法修改表格中某一个单元格的值,使用removeRow0方法从表格中删除指定行等。

f4ead2aafa034190b34fc94ae28e2ed4.png

c8289b0393db476cafcacd068993272f.png 

0df02752dcf44ee88142bcf575cd0c95.png 

f452bfac961e4ed9a6b22cf98a4580aa.png 

 事件监听器

该监听器负责处理用户单击按钮后实现的功能

ActionEvent动作事件

f2cfe4ae7fc44c6ba58386142071b998.png

f494432d7c604bdd9c05116e0cbf4621.png 

 KeyEvent键盘事件 

KeyEvent负责捕捉键盘事件

bfa3f194039d49d4bb58db5f49548c58.png

68c6720666024a3183155515fbd094ce.png 

 MouseEvent鼠标事件

44f61171a8b84faca6cbf5a1d05abeee.png

56d25d316ed84117884cbd8a63876c2b.png 

bcedcb0c4f374735869b9c36323b0e31.png 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值