swing常用用户界面组件

Swing和模型-视图-控制器设计模式

模型:存储内容,必须实现改变内容和查找内容的方法,不可见

视图:显示内容

控制器:处理用户输入

一个模型可以有多个视图,每个视图可以显示全部内容的不同部分

模型类实现一个名字以Model结尾的接口

查看模型无法知道按钮上显示什么

布局管理概述

1.布局管理器

2.边框布局

边框布局管理器,允许为每个组件选择位置

与流布局不同

解决这个问题的方法,使用另外的面板(panel)

3.网格布局

像表格一样排列

文本输入

文本域(输入单行文本)文本区(多行)

1.文本域

2.标签和标签组件

标签是容纳文本的组件,没有任何修饰,也不能响应用户输入,可以利用标签标识组件

3.密码域

4.文本区

5.滚动窗格

在Swing中,文本区没有滚动条,需要的话,必须将文本区放在滚动窗格中

选择组件

1.复选框

多选

2.单选按钮

单选按钮组

3.边框

4.组合框

下拉一个选择列表,可设置为可编辑

5.滑动条

滑动条允许从连续值中选择

菜单

当用户点击一个菜单项时,所有菜单都关闭,并向程序发送一个消息

1.菜单构建

2.菜单项中的图标

可包含文本标签、图标

3.复选框和单选框按钮菜单项

4.弹出菜单

不固定在菜单栏中而是随处浮动的菜单

5.键盘助记符和加速器

在菜单项构造器中指定一个主机字母来为菜单创建一个键盘助记符

键盘加速器是在不打开菜单的情况下选择菜单项的快捷键

6.启用和禁用菜单项

7.工具栏

按钮栏,可快速访问程序中最常用的命令,可随处移动(采用边框布局),可脱离窗体

8.工具提示

复杂的布局管理

1.网格包布局

没有任何限制的网格布局,行和列的大小可以改变

1.1 gridx、gridy、gridwidth、gridheight参数

约束定义了组件在网格中的位置,gridx和gridy指定了所添加组件左上角的行、列位置,gridwidth和gridheight确定组件占据的行数和列数。

1.2 权重字段

为区域设置,为0则该区域在该反向上永远为初始大小,不会扩大或缩小。

1.3 fill和anchor参数

不希望一个组件拉伸至填满整个区域,则设置fill约束,设置anchor字段指定它在区域中的位置

1.4边距

可以通过设置GridBagContraints的insets字段在组件周围增加额外的空白区域

1.5 指定gridx、gridy、gridwidth、gridheight参数的候选方法

建议不要将gridx和gridy设置为绝对位置,应该设置为常量GridBagConstraints.RELATIVE

1.6 网格包布局技巧

1.7 使用辅助类管理网格包约束

2.定制布局管理器

可以设计自己的LayoutManager类以一种特殊的方式管理组件,

对话框

模式对话框和无模式对话框。模式对话,在结束这个对话框的处理之前,不允许用于与应用的其余窗口进行交互,如果用户要先获取用户提供的信息,程序才能运行,则使用模式对话框。无模式对话框允许用户在这个对话框中输入信息,同时允许在应用的其他部分输入信息。

1.选择对话框

2.创建对话框

3.数据交换

4.文件对话框

打开和保存文件,文件对话框应该显示文件和目录,允许用户浏览文件系统,swing提供了JFileChooser类,模式对话框。