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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/722825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式学习 Day 27

1.信号: 1.pause int pause(void); 功能: 让进程睡眠,直到接收到信号(捕捉)才能继续向下执行 2.alarm unsigned int alarm(unsigned int seconds); 功能: 定时seconds秒后给调用进程发送SIGALRM信号 参数: seconds:定时的…

微信小程序开发系列(十九)·wxml语法·setData()修改数据

目录 步骤一:创建一个data对象 步骤二:双大括号写法的使用 步骤三:创建一个更新事件按钮 步骤四:定义事件处理函数获取数据 步骤五:定义事件处理函数修改数据 方法一:通过赋值的方式直接修改数据 方…

android音视频编解码,你有过迷茫吗

3-5年的Android工程师最容易遇到的4个瓶颈是什么? 1.原理认知浅 工作内容多是简单UI界面开发和第三方SDK整合,对原理层和底层开发了解不深 2.技术视野窄 长期在小型软件公司,外包公司工作,技术视野被限制的太厉害 3.薪资提升…

java算法第十三天 | ● 239. 滑动窗口最大值 ● 347.前 K 个高频元素 ● 总结

239. 滑动窗口最大值 leetcode链接 之前讲的都是栈的应用,这次该是队列的应用了。 本题算比较有难度的,需要自己去构造单调队列,建议先看视频来理解。 思路: 自定义一个单调队列维护当前滑动窗口的最大值。 代码随想录解题思路 …

React富文本编辑器开发(五)

到目前为止我们所有的功能操作都是直接写在 onKeydown 事件里了,但如果我想复用相同的功能怎么办呢,最好的办法就是拨离了,下面我就形如进行这样的操作,把相关的可复用的命令操作抽取出来。 新建文件 _helper.jsx,创建一个协助器…

游戏引擎渲染流程

一、渲染概述 我们首先看到渲染技术的发展 游戏渲染面临的挑战: 一个容器中同一时刻有大量的游戏对象需要进行渲染,并且不同对象渲染的形式、算法还有所差异,这些使得游戏的绘制系统变得非常复杂;其次,游戏引擎的渲染…

空间直角坐标系、大地坐标系、平面坐标系介绍

空间直角坐标系、大地坐标系、平面坐标系 2017-04-11 13:53 ( 一)空间直角坐标系 空间直角坐标系的坐标原点位于参考椭球的中心,Z轴指向参考椭球的北极,X轴指向起始子午面与赤道的交点,Y轴位于赤道面上切按右手系于X轴呈90度夹角,某点中的坐标可用该点在此坐标系的各…

【深度学习】目标检测神经网络1/2

目标检测神经网络 概念 模型分类有三种:图像分类即输出图像类别和概率;单目标检测,输出目标的概率和位置;多目标检测,同时输出多个目标的分类、位置、概率。 位置检测分为两种形式:一种是矩形框&#xf…

如何分辨Mac设备X86或ARM

在终端中输入如下命令可以获取到当前 Mac 设备是 X86 还是 ARM 类型 uname -a 以上便是此次分享的全部内容,希望能对大家有所帮助!

Vue响应式内容丢失处理

对数组和对象进行不当的修改会使Vue的对象丢失响应式,这时可以直接console.log丢失的对象,看是否有getter和setter 对于数组和对象,只有使用 Vue 提供的一些方法(如 push()、pop()、splice()、set() 等)进行修改才会触…

linux循环之for循环

1.循环介绍 循环就是迭代(重复)一些命令的代码块,如果循环控制条件不满足的话,就结束循环 2.for循环语法 for 循环控制条件 do commands done #当“循环控制条件”不满足条件,结束for循环 3.for循环样例 [rootkibana ~]# cat for-1.…

css深度选择器 /deep/ 在89版本后就失效了

css深度选择器 /deep/ 在89版本后就失效了 前言&#xff1a;在高版本中&#xff08;89版本以后&#xff09;css使用/deep/样式就失效了 原因&#xff1a;css深度选择器 /deep/ 在89版本后就不支持了 解决办法&#xff1a;使用scss预编译 <style lang"scss" sc…

DxO PureRAW:赋予RAW图像生命,打造非凡视觉体验 mac/win版

DxO PureRAW 是一款专为RAW图像处理而设计的软件&#xff0c;旨在帮助摄影师充分利用RAW格式的优势&#xff0c;实现更加纯净、细腻的图像效果。该软件凭借其强大的功能和易于使用的界面&#xff0c;成为了RAW图像处理领域的佼佼者。 DxO PureRAW 软件获取 首先&#xff0c;Dx…

几种电脑提示mfc140.dll丢失的解决方法,以及如何预防mfc140.dll丢失

mfc140.dll真是一个超级关键的动态链接库文件&#xff01;一旦这个文件不翼而飞&#xff0c;可能会导致一些程序无法顺利运行&#xff0c;甚至给系统带来麻烦。但别担心&#xff01;遇到mfc140.dll文件丢失的情况&#xff0c;我们有一堆应对措施可以立马施行&#xff0c;确保问…

计算机网络-物理层

物理层 基本概念传输媒体信道复用频分复用&#xff08;FDM&#xff09;时分复用&#xff08;TDM&#xff09;波分复用&#xff08;WDM&#xff09;码分复用&#xff08;CDM&#xff09; 宽带接入技术ADSL技术光纤同轴混合网(HFC网)FTTx技术 数据通信常识 上次我们已经大致学习了…

探秘Netty:打造高性能网络通信利器

目录 Netty真强大啊&#xff01;TCP拆包与粘包长连接握手认证心跳机制断线重连机制消息重发机制读写超时机制离线消息线程池结语感谢您的阅读&#xff01; Netty真强大啊&#xff01; Netty是一个基于Java的异步事件驱动的网络应用框架&#xff0c;被广泛应用于高性能、高可靠…

06 - 镜像管理

1 了解镜像 Docker镜像是一个特殊的文件系统&#xff0c;除了提供容器运行时所需的程序、库、资源、配置等文件外&#xff0c;还包含了一些为运行时准备的一些配置参数&#xff08;如匿名卷、环境变量、用户等&#xff09;。 但注意&#xff0c; 镜像不包含任何动态数据&#…

【探索AI】二十五 深度学习之第8周:深度学习项目实战

项目名称&#xff1a;基于深度学习的图像分类系统 一、项目背景 随着大数据和人工智能技术的快速发展&#xff0c;图像分类技术在各个领域得到了广泛应用&#xff0c;如安防监控、医疗诊断、自动驾驶等。本项目旨在利用深度学习技术构建一个高效的图像分类系统&#xff0c;实…

C++高级面试题:请解释 C++ 中的递归模板(Recursive Templates)

请解释 C 中的递归模板&#xff08;Recursive Templates&#xff09; 递归模板&#xff08;Recursive Templates&#xff09;是一种使用模板递归定义的技术&#xff0c;在编译时生成具有不同结构的代码。这种技术通常用于处理数据结构或实现算法&#xff0c;其中需要对数据进行…

Mysql数据迁移3个快速方法与数据库恢复

目录 Mysql数据迁移3个快速方法与数据库恢复 方法1 选中表复制粘贴 方法2 克隆 方法3 DTS迁移【推荐】 数据库误删恢复方法 Mysql数据迁移3个快速方法与数据库恢复 前言&#xff1a;日常开发中&#xff0c;项目测试发布到生产或者复制多一套程序出来&#xff0c;经常免不…