表单开发精选.docx

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
表单开发精选

表单开发流程与方法朱建奎、赵雁NC管理会计2012.3.9目录一、预备知识21、数据结构2基于数组和链表的List实现2基于数组的快速排序原理22、Java的知识准备3JTable渲染器3事件处理机制4泛型、可变参数、for each 循环53、数据库6SQL:结构化查询语言6JDBC:java数据库连接74、设计模式7MVC7观察者模式7静态工厂方法模式8二、开发流程91、实现ArrayList和LinkedList92、实现对List通用的快速排序123、实现基于订单号的快速排序144、建立数据库表和序列155、连接数据库,实现业务层逻辑156、设计图形界面187、实现从数据库中获取数据,并显示在界面中188、实现按钮间的相互关联199、各个按钮的功能实现2310、实现表格的按列排序2511、添加行头以及单元格的渲染2612、应用MVC模式重构27一、预备知识1、数据结构基于数组和链表的List实现数组是一种物理存储单元上连续的、顺序的存储结构。它是把具有相同类型的若干变量按有序的形式组织起来的一种形式,是按序排列的同类数据元素的集合,它的大小是不可变的。链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于线性表顺序结构,链表比较方便插入和删除操作。基于数组的快速排序原理其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。例子:基于数组的递归实现的快速算法如下(下面代码中只用一种算法,另外一种算法详见代码):privatestaticint partition(int[] arr, int m, int n) {int key = arr[m];while (m n) {while (m n arr[n] = key) {--n;}arr[m] = arr[n];while (m n arr[m] = key) {++m;}arr[n] = arr[m];}arr[m] = key;return m;}publicstaticvoidquickSort(int[] arr, int m, int n) {if (m n) {int t=partition(arr,m,n);quickSort(arr, m, t - 1);quickSort(arr, t + 1, n);}}2、Java的知识准备JTable渲染器采用JTable渲染器可以设置表格中单元格的颜色等,通过覆盖父类DefaultTableCellRenderer的getTableCellRendererComponent(JTable table, Object value, booleanisSelected, booleanhasFocus,int row, int column)方法就可以自定义表格的样式。比如:可以设置表格的偶数行与奇数行显示的颜色;选中单元格的颜色,获得焦点的颜色;可以设置单元格中数据满足某一条件时进行高亮显示。下图中是对订单数量大于或者等于80的突出显示:事件处理机制事件最初由事件源产生,事件源可以是GUI组件Java Bean或由生成事件能力的对象。在GUI组件情况下,事件源可以是组件的同位体(相对于Abstract Window Toolkit[awt]GUI组件),也可以是组件本身(相对于Swing组件)。事件生成后,放在系统事件队列内部。此时,事件处于事件分发线程的控制下,在队列中等待处理。当事件从队列中选出后,被送到dispatchEvent()方法中,dispatchEvent()方法调用processEvent()方法并将事件的一个引用传递给processEvent()方法。此刻,系统会查看是否有送出事件的位置,如果没有这种事件类型相应的已经注册的监听器,或者如果没有任何组件受到激活来接收事件类型,事件就被抛弃。当然上图显示的是AWTEvent类的子类的生命周期。dispatchEvent()方法和processEvent()方法把AWTEvent作为一个参数。但javax.swing.event并不是AWTEvent子类,而是从EventObject直接继承过来,生成这些事件的对象也会定义fireEvent()方法,此方法将事件送到包含在对象监听器列表内的那种类型的任何监听器。泛型、可变参数、for each 循环泛型是JDK1.5

文档评论(0)

pfenejiarz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档