《培训基础课件常用控件介绍.ppt》由会员分享,可在线阅读,更多相关《培训基础课件常用控件介绍.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、P1 版权所有 1993-2006 金蝶软件(中国)有限公司n培训基础课件常用控件介绍n Still waters run deep.流静水深流静水深,人静心深人静心深 nWhere there is life,there is hope。有生命必有希望。有生命必有希望P2 版权所有 1993-2006 金蝶软件(中国)有限公司提纲提纲nKDTable控件控件n各种编辑类控件各种编辑类控件n格式化输入框格式化输入框(KDFormattedTextField)n日期选择控件日期选择控件(KDDatePicker)nF7控件控件(KDPromptBox)n多语言输入框多语言输入框(KDMultiL
2、angBox,KDMultiLangArea)nKDList控件控件nKDTree控件控件nKDLayout布局管理器布局管理器P3 版权所有 1993-2006 金蝶软件(中国)有限公司KDTable控件控件 功能功能n增加(删除)行或列n行、列、单元的属性和值n填充数据n动态刷新Tablen数据融合n选择信息n编辑n分组n输入输出n事件n格式化n打印n辅助编辑功能n添加KDTable显示后待执行动作说明n表格列宽自动调整设置n其他P4 版权所有 1993-2006 金蝶软件(中国)有限公司KDTable控件控件 用法示例用法示例n增加列n/指定插入位置ntable.addColumn(in
3、dex);n/插入到最后ntable.addColumn();n/一次性添加多行naddColumns(colCount);n增加表头行n/指定插入位置ntable.addHeadRow(index);n/插入到最后ntable.addHeadRow();n/一次性添加多个表头行ntable.addHeadRows(headRowCount);P5 版权所有 1993-2006 金蝶软件(中国)有限公司KDTable控件控件 用法示例用法示例n/删除所有表头行ntable.removeHeadRows();n/增加表体行n/指定插入位置ntable.addRow(index);n/插入到最后n
4、table.addRow();n/一次性添加表体行ntable.addRows(rowCount);n/获取列对象nICol col=table.getColumn(0);n/获取表头行对象nIRow headRow=table.getHeadRow(0);n/获取表体行对象nIRow row=table.getRow(0);n/获取单元对象nICell headCell=row.getCell(0);nICell cell=row.getCell(0);n如何设置单元的值n/value为任意objectncell.setValue(value);P6 版权所有 1993-2006 金蝶软件(
5、中国)有限公司KDTable控件控件 用法示例用法示例n快速创建具有空数据行的快速创建具有空数据行的tablen/利用构造函数创建有空数据行的table,下述代码展示了创建具有5列,一行表头和10行空数据行的表格的两种方法。n/方法一:nKDTable table=new KDTable(5,1,10);n/方法二:nKDTable table=new KDTable();nthis.createBlankTable(5,1,10);P7 版权所有 1993-2006 金蝶软件(中国)有限公司提纲提纲nKDTable控件控件n各种编辑类控件各种编辑类控件n格式化输入框格式化输入框(KDForm
6、attedTextField)n日期选择控件日期选择控件(KDDatePicker)nF7控件控件(KDPromptBox)n多语言输入框多语言输入框(KDMultiLangBox,KDMultiLangArea)nKDList控件控件nKDTree控件控件nKDLayout布局管理器布局管理器P8 版权所有 1993-2006 金蝶软件(中国)有限公司编辑类控件编辑类控件 概览概览P9 版权所有 1993-2006 金蝶软件(中国)有限公司提纲提纲nKDTable控件控件n各种编辑类控件各种编辑类控件n格式化输入框格式化输入框(KDFormattedTextField)n日期选择控件日期选择
7、控件(KDDatePicker)nF7控件控件(KDPromptBox)n多语言输入框多语言输入框(KDMultiLangBox,KDMultiLangArea)nKDList控件控件nKDTree控件控件nKDLayout布局管理器布局管理器P10 版权所有 1993-2006 金蝶软件(中国)有限公司格式化输入框格式化输入框(KDFormattedTextField)n功能:n只能输入合法的数字n提供整数或浮点的输入(可以设置KDFormatTextedField的类型)n浮点型提供精度格式化(以及负数文本颜色的变化)P11 版权所有 1993-2006 金蝶软件(中国)有限公司格式化输入
8、框格式化输入框 构造构造n例子1:构造时指定其类型:(推荐)n整数型输入框nKDFormattedTextField integerField=new KDFormattedTextField(KDFormattedTextField.INTEGER);n浮点型输入框nKDFormattedTextField floatField=new KDFormattedTextField(KDFormattedTextField.DECIMAL);nfloatField.setPrecision(5);/精确到小数点后第5位nfloatField.setNegativeColor(Color.red)
9、;/设置负数颜色n例子2:构造后指定其类型:(不推荐)nKDFormattedTextField ftf=new KDFormattedTextField();nftf.setDataType(KDFormattedTextField.BIGDECIMAL_TYPE);P12 版权所有 1993-2006 金蝶软件(中国)有限公司格式化输入框格式化输入框 取值、赋值、监听取值、赋值、监听n取值ngetNumberValue()或getValue()n一般赋值nsetNumberValue(Number)或setValue(Number)n不触发事件的赋值n大部分编辑类控件现在都具有了此类接口n
10、setValue(Object value,boolean fireListener)n或者 setNumberValue(Number newValue,boolean fireListener)n监听值改变事件naddDataChangeListener(DataChangeListener l)P13 版权所有 1993-2006 金蝶软件(中国)有限公司格式化输入框格式化输入框 其他功能其他功能n设置是否支持null值:setSupportedEmpty(boolean)n设置精度:setPrecision(boolean)n设置当焦点不能从该控件转移开时,哪些控件可以响应鼠标时间进行
11、操作:setAllowdMouseProcessComponents(JComponent)n设置非编辑状态下以百分数的格式显示:setPercentDisplay(true)n其他请参见控件的set*方法P14 版权所有 1993-2006 金蝶软件(中国)有限公司提纲提纲nKDTable控件控件n各种编辑类控件各种编辑类控件n格式化输入框格式化输入框(KDFormattedTextField)n日期选择控件日期选择控件(KDDatePicker)nF7控件控件(KDPromptBox)n多语言输入框多语言输入框(KDMultiLangBox,KDMultiLangArea)nKDList控
12、件控件nKDTree控件控件nKDLayout布局管理器布局管理器P15 版权所有 1993-2006 金蝶软件(中国)有限公司日期选择控件日期选择控件(KDDatePicker)n功能:n日期选择框能进行日期和时间的编辑,默认情况下只能进行日期选择“年月日”,可通过调用用函数setTimeEnabled(boolean)来设置是否也有时间编辑。对日期进行编辑时,可手工直接在编辑框里进行改动,也可点击小按钮弹出一个日期选择表框进行选择。n有“是否返回空值”的可选设置。n该控件接受的数据类型必须是java.util.Date及其子类java.sql.Date,java.sql.Timestamp
13、.P16 版权所有 1993-2006 金蝶软件(中国)有限公司日期选择控件日期选择控件 常用用法常用用法n构造nKDDatePicker datePicker=new KDDatePicker();n设置时间是否显示 ndatePicker.setTimeEnabled(true);/“时:分:秒”可显示ndatePicker.setTimeEnabled(false);/“时:分:秒”不可显示n值改变事件(注意例子的用法)ndatePicker.addDateChangeListener(new DataChangListener();P17 版权所有 1993-2006 金蝶软件(中国)
14、有限公司提纲提纲nKDTable控件控件n各种编辑类控件各种编辑类控件n格式化输入框格式化输入框(KDFormattedTextField)n日期选择控件日期选择控件(KDDatePicker)nF7控件控件(KDPromptBox)n多语言输入框多语言输入框(KDMultiLangBox,KDMultiLangArea)nKDList控件控件nKDTree控件控件nKDLayout布局管理器布局管理器P18 版权所有 1993-2006 金蝶软件(中国)有限公司F7控件控件(KDPromptBox)n功能:nF7控件是一个特殊的编辑控件,特点是按下F7键能够弹出辅助选框。用户使用的典型流程:
15、n1用户按下F7键;n2控件弹出辅助选框;n3用户选择某条目,并点击确定或取消按钮,辅助选框关闭;n4控件根据辅助选框isCanceled方法得到辅助选框状态;如果是确定状态(isCanceled返回false)则通过辅助选框的getData方法获得用户选择的数据。注意:数据是从辅助选框到控件单向流动的。n5控件发出数据“将改变”事件(KDPreChangeEvent),PreChangeListener对事件参数中的数据进行处理(包括验证、属性设置等),如果preChange方法返回true;控件将data的text属性设置到控件的编辑框中。n6控件发出数据改变事件。P19 版权所有 199
16、3-2006 金蝶软件(中国)有限公司F7控件控件(KDPromptBox)n EAS6.0增加的新功能:n 输入查询字段后,按F8弹出过滤下拉框,在下拉框内的操作流程类似上述36,只是确定、取消按钮的功能改为在条目上双击和点击下拉框外其他地方关闭n 增加了输入框联想记忆功能,可以记忆一定数量的历史输入记录,可以调用setHistoryRecordEnabled(false)来关闭P20 版权所有 1993-2006 金蝶软件(中国)有限公司F7控件控件 属性属性nData属性:n控件的数据属性,Object对象。正常情况下编辑框中显示的是Data的toString()返回值,在F7业务控件中
17、,编辑框将根据客户指定格式显示。nSelector属性:n弹出式模式窗口,实现KDPromptSelector接口的窗口。用户通过该窗口选择数据。nDialog属性:n废弃,被Selector属性替代。nEditable属性:n可编辑属性。如果为true,用户可以在编辑框中输入文本。nValue属性和Display属性:n由KDTable使用,由于和KDTable分布在不同包中,故可见性为public,不建议客户程序使用。P21 版权所有 1993-2006 金蝶软件(中国)有限公司F7控件控件 功能调用功能调用n1清除功能n按下ctrl键,当前具有焦点的F7控件的按钮功能变为“清除数据”,同
18、时切换图标。在该状态下点击该控件的按钮将清除数据,并发出ChangedEvent事件。n2可编辑功能npublic void setEditable(boolean aFlag);npublic boolean isEditable();n在可编辑状态下,Enter键为输入确认。确认后,控件将编辑框中的文本通过commitEdit方法转换为一个对象。n3焦点控制n控件失焦点时如果文字已被手动编辑则执行提交(触发KDPreChangeEvent事件)。n失焦点有以下几种情况:nTab切换或鼠标激活的切换:如果用户被手动编辑过则提交数据。nEnter切换:如果数据已经被提交,则不提交。n弹出Pro
19、mptSelector:这种情况当作焦点在本控件处理,不提交数据P22 版权所有 1993-2006 金蝶软件(中国)有限公司F7控件控件 功能调用功能调用n4.数据改变事件,发生在数据改变后:npublic void addChangeListener(ChangeListener listener);npublic void removeChangeListener(ChangeListener listener);n5选择框“将弹出”事件,发生在选择框弹出之前:npublic void addSelectorListener(SelectorListener listener);n在弹出
20、选择框之前,监听器可以修改控件的某些属性,特别是和选择框有关的属性。参见F7业务控件说明部分。n6.Commit事件,发生在用户在编辑框中按Enter键后:npublic void addCommitListener(CommitListener listener);n在解析编辑框中的字符串之前发出该事件,事件中带有编辑框中的文本,使用CommitEvent.getText()方法获得。其他参见F7业务控件说明部分。P23 版权所有 1993-2006 金蝶软件(中国)有限公司F7控件控件 常见用法常见用法n设置f7的查询过滤 promptBox.setQueryInfo(com.kingde
21、e.eas.basedata.person.app.PersonQuery);n设置可见属性n promptBox.setVisible(true);n设置边界属性n promptBox.setEditable(true);n设置显示内容n promptBox.setDisplayFormat($name$);n设置编辑状态内容n promptBox.setEditFormat($number$);n设置提交内容n promptBox.setCommitFormat($number$);P24 版权所有 1993-2006 金蝶软件(中国)有限公司提纲提纲nKDTable控件控件n各种编辑类控
22、件各种编辑类控件n格式化输入框格式化输入框(KDFormattedTextField)n日期选择控件日期选择控件(KDDatePicker)nF7控件控件(KDPromptBox)n多语言输入框多语言输入框(KDMultiLangBox,KDMultiLangArea)nKDList控件控件nKDTree控件控件nKDLayout布局管理器布局管理器P25 版权所有 1993-2006 金蝶软件(中国)有限公司多语言输入框多语言输入框(KDMultiLangBox,KDMultiLangArea)n功能:提供了存储多对“特定语言-该语言相关数据”映射的功能,适用于需要多语言支持的产品。n和JC
23、omboBox的Item相对应,多语言输入框使用MultiLangItem,它包含语言对象(LanguageInfo)和对应数据(Object)。n为了方便使用,多语言控件被包装为KDBizMultiLangBox和KDBizMultiLangArea两个实用控件,前者是单行,后者是多行。也可以使用KDBizMultiLangBox(KDMultiLangBox.MULTILINE)来构造一个多行多语言控件,等同于KDBizMultiLangArea。n语言对象 LanguageInfon用来标识不同的语言,包含语言区域和显示图标。n区域是唯一标识一种语言的关键字;n图标可以自定义,使用set
24、Icon方法定制图标。默认使用Locale.getDisplayName(getDefaultLocale()的前两个字母作图标。P26 版权所有 1993-2006 金蝶软件(中国)有限公司多语言输入框多语言输入框 使用使用n使用时,应用框架首先初始化语言列表,使用createLanguageList方法。该方法有两种形式,带图标参数的形式允许客户程序指定每个区域对应的语言图标,如下:npublic static List createLanguageList(Locale loc,Icon icon);n需要注意的是:n1.初始化后语言列表不可更改。n2.初始化前如果未对语言列表进行创建,
25、那么new出来的控件就没有任何语言。n3.如果应用框架初始化的语言列表不够用,控件可以通过addLanguage方法添加语言。n4.如果应用框架有约定整个应用使用统一的语言列表,那么请注意慎用下面的方法,这些方法将可能改变单个控件实例的语言列表:naddLanguage(LanguageInfo);naddItem(.);nsetItemData(LanguageInfo,Object);nremoveItem(.);nremoveLanguage(LanguageInfo);P27 版权所有 1993-2006 金蝶软件(中国)有限公司多语言输入框多语言输入框 使用使用n多语言输入框有以下功
26、能来支持客户程序:n添加一种语言 addLanguage,在列表中查找,如果没有则添加,有则不变。n添加语言和相关数据 addItem,在列表中查找,如果没有则添加,并放入数据,有则只放入数据。n删除一种语言及其关联数据 removeLanguage,removeItem,列表中找不到被删除项,则忽略;否则删除。n设置当前语言 setSelectedLanguage,指定在编辑框中显示的语言。n设置当前内容 setSelectedItemData,修改在编辑框中显示的语言的数据。P28 版权所有 1993-2006 金蝶软件(中国)有限公司提纲提纲nKDTable控件控件n各种编辑类控件各种编
27、辑类控件n格式化输入框格式化输入框(KDFormattedTextField)n日期选择控件日期选择控件(KDDatePicker)nF7控件控件(KDPromptBox)n多语言输入框多语言输入框(KDMultiLangBox,KDMultiLangArea)nKDList控件控件nKDTree控件控件nKDLayout布局管理器布局管理器P29 版权所有 1993-2006 金蝶软件(中国)有限公司KDList控件控件 功能功能n关于关于KDList及其模及其模nKDList继承于JList。n使用KingdeeListModel(它继承于DefaultListModel,增加了图标等数据
28、)。n实现DefaultKingdeeListCellRenderer绘制带图标的选项。n使用KDList,没有必要设置模,只须new创建然后增删选项。n例1:nString s=Item1,Item2,Item3;nKDList list=new KDList(s);n例2:nKDList list=new KDList();P30 版权所有 1993-2006 金蝶软件(中国)有限公司KDList控件控件 增删选项增删选项n每个选项是一个Objectn在列表末端增加一个选项npublic void addElement(Object elem)n在列表中指定位置插入一个选项npublic
29、void insertElement(Object elem,int index)n在列表中指定位置重置选项,返回原选项npublic Object setElement(Object elem,int index)n在列表中移除选项npublic boolean removeElement(Object elem)n在列表中移除指定位置的选项npublic void removeElementAt(int index)n移除列表中所有选项npublic void removeAllElements()n取得列表中指定位置的选项npublic Object getElement(int ind
30、ex)P31 版权所有 1993-2006 金蝶软件(中国)有限公司KDList控件控件 增删选项增删选项n取得选项在列表中的位置npublic int getIndexOfElement(Object elem)n判断选项是否在列表中npublic boolean isContainsElement(Object elem)n获取选项个数npublic int getElementCount()n例:nlist.addElement(“Item4”);/列表末尾追加选项nlist.insertElement(“Item0”,0);/插入选项P32 版权所有 1993-2006 金蝶软件(中国
31、)有限公司KDList控件控件 其他功能其他功能n给选项加图标给选项加图标n选项多列布局选项多列布局n设置单选设置单选/多选多选P33 版权所有 1993-2006 金蝶软件(中国)有限公司KDList控件控件 其他功能其他功能n取得选中项取得选中项(参考JDK文档)npublic Object getSelectedValue()npublic Object getSelectedValues()npublic int getSelectedIndex()npublic int getSelectedIndices()n事件事件(参考JDK文档)n监听选中项改变监听选中项改变list.add
32、ListSelectionListener(ListSelectionListener)n监听鼠标事件(通过鼠标位置得到选项索引)监听鼠标事件(通过鼠标位置得到选项索引)list.addMouseListener(new MouseAdapter()public void mousePressed(MouseEvent e)Point p=new Point(e.getX(),e.getY();System.out.println(list.locationToIndex(p););P34 版权所有 1993-2006 金蝶软件(中国)有限公司提纲提纲nKDTable控件控件n各种编辑类控件各
33、种编辑类控件n格式化输入框格式化输入框(KDFormattedTextField)n日期选择控件日期选择控件(KDDatePicker)nF7控件控件(KDPromptBox)n多语言输入框多语言输入框(KDMultiLangBox,KDMultiLangArea)nKDList控件控件nKDTree控件控件nKDLayout布局管理器布局管理器P35 版权所有 1993-2006 金蝶软件(中国)有限公司KDTree控件控件nKDTree的模与节点nKDTree从JTree继承,它的模式及结构也是与JTree保持一致,而JTree使用的模DefaultTreeModel和节点DefaultM
34、ultableTreeNode不能满足KDTree的需求,于是扩展了KingdeeTreeModel和DefaultKingTreeNode。n增删节点的易用性接口:n在父节点下的最后插入子节点:addNodeInto(MutableTreeNode newChild,MutableTreeNode parent)n在父节点下的指定位置插入子节点:insertNodeInto(MutableTreeNode newChild,MutableTreeNode parent,int index)n删除节点:removeNodeFromParent(MutableTreeNode node)n 删除
35、节点的所有子节点:removeAllChildrenFromParent(MutableTreeNode parent)n设置节点是否显示CheckBox(默认为false):setShowCheckBox(boolean showCheckBox)n 众多方法详见开发文档。P36 版权所有 1993-2006 金蝶软件(中国)有限公司KDTreeView 树视图树视图nKDTreeView实现了对KDTree的包装,将KDTree置于KDScrollPane中,并加上标题栏和操作按扭:nKDTreeView treeView=new KDTreeView(tree);nKDTreeView
36、treeView=new KDTreeView();treeView.setTree(tree);n取得KDTree:treeView.getTree()n设置顶端的标题栏标题栏是否可见npublic void setShowControlPanel(boolean isShow)n设置TreeView标题标题npublic void setTitle(String title)n设置五个常用按钮常用按钮是否显示,五个按钮状态一致 npublic void setShowButton(boolean showButton)n新增按钮新增按钮nKDWorkButton wb=new KDWork
37、Button(按钮);treeView.getControlPane().add(wb);n快捷操作快捷操作(since EAS v6.0)n按Ctrl+1,2,3分别将整棵树展开到第1,2,3级P37 版权所有 1993-2006 金蝶软件(中国)有限公司提纲提纲nKDTable控件控件n各种编辑类控件各种编辑类控件n格式化输入框格式化输入框(KDFormattedTextField)n日期选择控件日期选择控件(KDDatePicker)nF7控件控件(KDPromptBox)n多语言输入框多语言输入框(KDMultiLangBox,KDMultiLangArea)nKDList控件控件nK
38、DTree控件控件nKDLayout布局管理器布局管理器P38 版权所有 1993-2006 金蝶软件(中国)有限公司KDLayout布局管理器布局管理器n功能:功能:n通过为每一个控件添加一个停靠约束(Anchor),把设计时的绝对定位布局转化为可缩放的相对布局。n使用范围使用范围nKDLayout是专门为UIDesigner设计布局管理器,通过对设计面板上的每一控件添加一个anchor属性,KDLayout就能将UIDesigner上绝对定位的布局变成可缩放的布局。如果在UIDesigner外单独使用KDLayout,需要填写更多的属性。P39 版权所有 1993-2006 金蝶软件(中国
39、)有限公司KDLayout 布局属性布局属性KDLayout的内部类Constraints定义了在使用KDLayout时容器上每个控件必须填写的布局属性。nAnchorn锚定。指控件上的一边与父容器的同方向的一边或是中心点之间的固定关系。当控件的锚定后,控件位置相对父容器固定。当父容器大小改变后,控件与父容器之间的固定关系不变,控件的位置大小由父容器所决定。n在KDLayout中定义了五个锚定点、两种锚定方式,共九个锚定方式可选择;不同锚定的方式用不同的常量表示,而且可以通过逻辑运算符“或”进行搭配使用。例如“ANCHOR_BOTTOM_SCALE|ANCHOR_RIGHT”。nOriginalBoundn用于记录控件在UIDesigner上的原始大小n当父控件的布局管理器是KDLayout的时候,任何手动添加到父控件的子控件一定需要使用类似c.putClientProperty(KDLayoutConstraints,new KDLayout.Constraints()这样的代码添加布局参数n而父控件必须使用类似c.putClientProperty(OriginalBounds,new Rectangle()这样的代码添加原始的大小
限制150内