《Java核心技术 卷1 基础知识》九

第12章 Swing用户组件

Swing设计者采用了模型-视图-控制器(model-view-controller,MVC)模式来设计用户组件
它限制了一个对象拥有的功能数量,在设计组件时一般实现三个独立的类:

  • 模型(model):存储内容,必须实现改变内容或者查找内容的方法,模型是完全不可见的
  • 视图(view):显示内容,即显示存储在模型中的数据
  • 控制器(controller):处理用户输入,如点击鼠标或者敲击键盘

当然,程序员使用Swing组件时,通常不需要考虑MVC模式
因为每个用户界面元素都有一个包装器类来保存模型和视图

布局管理器

通常,组件放在容器中,布局管理器决定容器中的组件的具体放置的位置和大小
每一个容器都有默认的布局管理器,但可以重新进行设置,通过setLayout方法

流布局管理器,逐个添加,当一行的空间不够时,会显示在另一行上
边框布局管理器,把内容窗格划分为中部、北部、南部、东部或者西部
网格布局管理器,按行和列排列所有的组件,每个单元的大小都是一样的

文本输入

文本域(JTextField),只能接受单行文本的输入
文本区(JTextArea),能接受多行文本的输入
JPassword,也只能接受单行文本,但不会将输入的内容显示出来
JPasswordField,一种特殊类型的文本域,用户输入的字符都用回显字符(如*)来表示

选择组件

JRadioButton,单选框,只能选择一个,即单选
JCheckBox,复选框,可以多选
JComboBox,组合框,当用户点击这个组件时,选择列表会下拉出来,用户可以从中选择一项
JSlider,滑动条,允许进行连续值的选择
JSlider slider = new JSlider(min,max,initialValue);

菜单

JMenubar,菜单栏,它可以添加到任意位置,但通常放置在框架的顶部
JMenu,菜单,添加在菜单栏中
JMenuItem,菜单项,添加在菜单中
快捷键,可以在菜单项的构造函数中指定一个快捷字母来为菜单项设置快捷键
JMenuItem about new JMenuItem("About",‘A‘);
当显示菜单时,用户可以按下A键来就可以选择菜单项

加速器,可以在不打开菜单的情况下选择菜单栏的快捷键
很多程序都把加速器CTRL+O和CTRL+S关联到File菜单中的Open和Save菜单项
可以使用setAccelerator将加速器关联到一个菜单项中
这个方法使用KeyStroke类型的对象作为参数
如:将加速器CTRL+O关联到OpenItem菜单项
OpenItem.setAccelerator(KeyStroke.getKeyStroke("ctrl o"));
这是用户按下加速器组合键时,就会自动选择相应的菜单项,同时激活一个事件,这与手工地选择这个菜单项一样

工具栏,JToolBar,在程序中提供的快速访问常用命令的按钮栏
其特殊之处在于,可以将它随处移动
与之搭配使用的是工具提示,当光标停留在某个按钮片刻时,工具提示就会被激活

对话框

与大多数窗口一样,AWT也分为模式对话框和无模式对话框

模式对话框是指在结束对它的处理之前,不允许用户与应用程序的其余窗口进行交互
模式对话框主要用于在程序继续运行之前获取用户提供的信息

无模式对话框是指允许用户同时在对话框和应用程序的其他窗口中输入信息

JOptionPane,选项对话框
创建对话框,需要从JDialog中派盛一个类,这与应用程序窗口派生于JFrame的过程完全一样
JFileChoose,文件对话框,用于显示文件和目录并让用户做出选择
JColorChooser,颜色选择器,也是一个对话框,满足用户选择颜色的需求

第13章 部署Java应用程序

所谓部署,即将Java程序打包,并部署到用户的计算机上

JAR,Java归档文件,既可以包含大量文件,也可以包含诸如图像和声音这些其他类型的文件
可以使用jar工具制作JAR文件,该工具在默认的JDK安装中,位于jdk/bin目录下
创建一个常用的JAR文件的命令为:
jar cvf JARFileName File1 File2
而jar命令的格式为:
jar options File1 File2 ...
jar程序选项

可以将应用程序,程序组件以及代码库打包在JAR文件中

每个JAR文件还包含一个清单文件,被命名为MANIFEST.MF,位于JAR的一个特殊META-INF子目录中

可以使用jar命令中的e选项指定程序的入口点
jar cvfe MyProgram.jar com.mycompany.mypkg.MainAppClass files to add
或者,可以在清单中指定应用程序的主类
Main-Class:com.mycompany.mypkg.MainAppClass

当然,目前有很多Java的IDE都提供了将应用程序打包为JAR文件的功能
启动程序:
java -jar MyProgram.jar

原文地址:https://www.cnblogs.com/ASE265/p/12252721.html

时间: 2024-08-30 00:40:33

《Java核心技术 卷1 基础知识》九的相关文章

构建之法的八、九、十章读书笔记

构建之法读书笔记 第八章  需求分析 这一章主要是讲需求的分析,对于一个程序项目来说,我觉得,需求是这个项目的向导,他可以决定程序项目会发展成什么样子.书里面需求这里大致分为两个:软件需求和用户需求. 软件需求:我们不仅仅要考虑到项目功能的需求,要实现的功能,还要考虑到开发过程以及非功能方面的需求,还有综合需求. 用户需求:是针对在用户这个角度,用户最需要的东西.我觉得用户需求在需求分析中较为重要,毕竟每一个要做的程序的根本目的是满足用户的要求.      所以书里面野介绍了九种获取用户需求的调

<<构建之法>>第八、九、十章的读后感

阅读不是仅仅为了阅读,读书的可贵之处在于思考和领悟.由于之前六.七章博文的疑问,并没有得到好的回复,于是,我将阅读的重点放在读后的心得体会,从中的收获.以及在<<构建之法>>一书学习到的处事方法. 对于软件开发的意义就是满足用户的需求,这点我非常赞成,如果一个产品没有任何用户基础,再高深的技术也是胡闹.书中详细的写到获取用户需求的种种方法和过程.因为这个快餐文化的时代,绝大部分没有耐心会慢慢地和你反映他的需求是什么,并且,即使面对面的交谈,也会出现表达和理解的误差,所以,需求分析这

《构建之法》—第6-7章

一.要求  阅读<构建之法>第6~7章,并参考以下链接,发布读后感.提出问题.并简要说明你对Scrum的理解. 学习附录: Scrum中文网--什么是Scrum?  http://www.scrumcn.com/agile/scrum-knowledge-library/scrum.html#tab-id-1 Scrum认证体系 http://www.scrumcn.com/agile/scrumtraining/scrum-certification-program.html Scrum实践

8th 对软件工程的理解(读构建之法有感)

对于任何一个学计算机的人来说,软件都不陌生,甚至于一个普通的朝九晚五的上班族,他的每日生活工作也都与软件有着密不可分的关系.然而,程序又是如何从一行行指尖留下的代码,机器存储的数据变成快捷高效的软件的呢?这中间我们所经历的一系列过程的总和,我们称之为软件工程. 从本科开始学习计算机,我们就不可避免的接触了形形色色的软件,了解大量的软件开发工具,我那个时候甚至没有软件工程这个概念,只认为,我们所用的软件就是开发工具编译.执行.包装.发布的产物.后来,开设了软件工程这门课程,才开始系统地接受软件工程

回望来时的路:构建之法东北师大站 2016春季学期

1.  前因 微软邹欣老师著有<构建之法:现代软件工程>[https://book.douban.com/subject/26577755/].第一版首版以前,我还不知道邹老师是哪一位,就在网上曾经看到过有人转引他的观点,感到说得太有道理了,一拍大腿的感觉.比如他提到教师和学生之间应该是健身教练和学员间的关系,不是教师带领学生参观浏览,也不是狱警和囚徒的关系.比如他批评没有代码量的软件工程教学.<构建之法>到手,第一遍粗读我花了一周的时间,酣畅淋漓.很多处让你再拍大腿,"

三读《构建之法》——源代码的设计、实现、控制与两人合作

现在,<构建之法>的一大半已经读完了,在这一大半本书中,这一部分可以说是对我触动最大的,也应该是整本书对我触动最大的. 整个第二章围绕测试展开,用一个很生动的类比告诉了我们测试的重要性:如果有人说,"一个人写写程序玩玩,单元测试似乎不那么重要.",那么你可以回应他:"你可以大胆对你的女朋友说:'我们只是玩一玩.'看看效果如何". namespace DemoUser{ public class User{ public User(String userE

《构建之法》(四)

本周看了<构建之法>的第八.九章的内容.初步了解了开始做一个软件的初始步骤. 需求分析 1.寻找需求 获取和引导需求.需求不仅是来自外界,甚至也可以来自技术成员团队内部: 分析和定义需求.主要是对需求进行量化: 验证需求.主要跟利益相关者沟通并通过各种方式像其验证对需求的认知. 在软件产品的生命周期中管理需求.需求不一定只在初期才有:在中后期的时候可能因为外界环境变化甚至是成员自身水平变化而出现新的需求 也可从不同角度划分: 对产品功能性需求.对产品开发过程需求.非功能性需求.综合需求 2.软

构建之法——读书笔记(8)

<构建之法>第十&十一章 主要讲述了在软件设计前期的需求分析问题上的方法和实践经验,分为"典型用户和场景"以及"软件设计与实现". 其中第十章大部分内容包含: 用户的分类(典型用户可以包括以下内容: 1. 名字(越自然越好) 2. 年龄(不同年龄和收入的用户有不同的需求) 3. 收入 4. 代表的用户在市场上的比例和重要性(比例大不等同于重要性高,如付费的用户比例较少,但是影响大,所以更重要 5. 使用这个软件的典型场景 6. 使用本软件/服务的

《构建之法阅读笔记02》

这次主要对<构建之法>的第四章“两人合作”作一次阅读笔记. 首先是代码规范问题. 我过去对于代码规范问题并没有做到注意.在编程中,许多变量和函数的命名都非常的简单而没有实际的意义.而且编程时不注意对齐缩进.很多时候也不加注释,导致对这些简单的变量名称不熟悉. 这样做会使得很多人读代码费劲,甚至是自己都要花时间再次阅读懂自己的代码.而且很多没必要的注释也会使得注释失去意义.当自己再次在原基础上编程时,可能要重新编程等问题. 因此,通过阅读“代码规范”,我找到一些解决方法.代码的风格要简明.易读.

简读《构建之法》,所想问题展示

1,<构建之法>这本书全局语言通俗,学生很容易读懂,但是存在一个隐患:学过软件工程,我们只是笼统的理解,而对这方面的专业知识很少了解,该怎么办? 2,书中提到的软件结构,软件设计与实现具体是怎样的?怎么理解它们之间的关系? 3,软件在不断更新和增加功能的负担下,一定程度下会崩溃.若有一个软件,即将考虑添加下一个功能,但是在添加这个功能之后,系统一定会崩溃,但是这个功能对这个软件的市场前景起着至关重要的作用,这是该怎么办? 4,软件设计和软件构建有区别吗?不同之处是什么? 5,当软件中的依赖关系