《第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