java核心技术第十一章学习笔记

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类,模式对话框。

相关推荐
新子y6 分钟前
【小白笔记】区分类方法/实例方法和静态函数/命名空间函数
笔记·分类
麦麦鸡腿堡1 小时前
Java的单例设计模式-饿汉式
java·开发语言·设计模式
假客套1 小时前
Request method ‘POST‘ not supported,问题分析和解决
java
傻童:CPU1 小时前
C语言需要掌握的基础知识点之前缀和
java·c语言·算法
梁辰兴1 小时前
企业培训笔记:外卖平台后端--套餐管理模块--新建套餐信息
笔记·vue·mybatis·springboot·外卖管理系统
degen_1 小时前
第一次进入 PEICORE 流程
c语言·笔记
YJlio1 小时前
Process Monitor 学习笔记(5.24):工具栏参考与高效快捷键指南
笔记·学习·php
爱吃山竹的大肚肚1 小时前
@Valid校验 -(Spring 默认不支持直接校验 List<@Valid Entity>,需用包装类或手动校验。)
java·开发语言
deng-c-f1 小时前
Linux C/C++ 学习日记(30):协程(一):同步和异步、协程的简要介绍、用户态CPU调度的实现
学习·协程·同步/异步
雨夜之寂2 小时前
mcp java实战 第一章-第一节-MCP协议简介.md
java·后端