培训基础课件常用控件介绍.ppt

上传人:本田雅阁 文档编号:2590471 上传时间:2019-04-14 格式:PPT 页数:41 大小:578.01KB
返回 下载 相关 举报
培训基础课件常用控件介绍.ppt_第1页
第1页 / 共41页
培训基础课件常用控件介绍.ppt_第2页
第2页 / 共41页
培训基础课件常用控件介绍.ppt_第3页
第3页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《培训基础课件常用控件介绍.ppt》由会员分享,可在线阅读,更多相关《培训基础课件常用控件介绍.ppt(41页珍藏版)》请在三一文库上搜索。

1、金蝶软件(中国)有限公司,KDTable及其它常用控件,提纲,KDTable控件 各种编辑类控件 格式化输入框(KDFormattedTextField) 日期选择控件(KDDatePicker) F7控件(KDPromptBox) 多语言输入框(KDMultiLangBox, KDMultiLangArea) KDList控件 KDTree控件 KDLayout布局管理器,KDTable控件 功能,增加(删除)行或列 行、列、单元的属性和值 填充数据 动态刷新Table 数据融合 选择信息 编辑 分组 输入输出,事件 格式化 打印 辅助编辑功能 添加KDTable显示后待执行动作说明 表格列

2、宽自动调整设置 其他,KDTable控件 用法示例,增加列 / 指定插入位置 table.addColumn(index); / 插入到最后 table.addColumn(); / 一次性添加多行 addColumns(colCount); 增加表头行 / 指定插入位置 table.addHeadRow(index); / 插入到最后 table.addHeadRow(); / 一次性添加多个表头行 table.addHeadRows(headRowCount);,KDTable控件 用法示例,/删除所有表头行 table.removeHeadRows(); /增加表体行 / 指定插入位置

3、table.addRow(index); / 插入到最后 table.addRow(); / 一次性添加表体行 table.addRows(rowCount); / 获取列对象 ICol col = table.getColumn(0);,/ 获取表头行对象 IRow headRow = table.getHeadRow(0); / 获取表体行对象 IRow row = table.getRow(0); / 获取单元对象 ICell headCell = row.getCell(0); ICell cell = row.getCell(0); 如何设置单元的值 / value为任意object

4、 cell.setValue(value);,KDTable控件 用法示例,快速创建具有空数据行的table / 利用构造函数创建有空数据行的table,下述代码展示了创建具有5列,一行表头和10行空数据行的表格的两种方法。 / 方法一: KDTable table = new KDTable(5, 1, 10); / 方法二: KDTable table = new KDTable(); this.createBlankTable(5, 1, 10);,提纲,KDTable控件 各种编辑类控件 格式化输入框(KDFormattedTextField) 日期选择控件(KDDatePicker)

5、 F7控件(KDPromptBox) 多语言输入框(KDMultiLangBox, KDMultiLangArea) KDList控件 KDTree控件 KDLayout布局管理器,编辑类控件 概览,提纲,KDTable控件 各种编辑类控件 格式化输入框(KDFormattedTextField) 日期选择控件(KDDatePicker) F7控件(KDPromptBox) 多语言输入框(KDMultiLangBox, KDMultiLangArea) KDList控件 KDTree控件 KDLayout布局管理器,格式化输入框(KDFormattedTextField),功能: 只能输入合法

6、的数字 提供整数或浮点的输入(可以设置KDFormatTextedField的类型) 浮点型提供精度格式化(以及负数文本颜色的变化),格式化输入框 构造,例子1: 构造时指定其类型:(推荐) 整数型输入框 KDFormattedTextField integerField= new KDFormattedTextField(KDFormattedTextField.INTEGER); 浮点型输入框 KDFormattedTextField floatField= new KDFormattedTextField(KDFormattedTextField.DECIMAL); floatField

7、.setPrecision(5);/精确到小数点后第5位 floatField.setNegativeColor(Color.red);/设置负数颜色 例子2:构造后指定其类型:(不推荐) KDFormattedTextField ftf = new KDFormattedTextField(); ftf.setDataType(KDFormattedTextField. BIGDECIMAL_TYPE);,格式化输入框 取值、赋值、监听,取值 getNumberValue()或getValue() 一般赋值 setNumberValue(Number)或setValue(Number) 不触

8、发事件的赋值 大部分编辑类控件现在都具有了此类接口 setValue(Object value, boolean fireListener) 或者 setNumberValue(Number newValue, boolean fireListener) 监听值改变事件 addDataChangeListener(DataChangeListener l),格式化输入框 其他功能,设置是否支持null值:setSupportedEmpty(boolean) 设置精度:setPrecision(boolean) 设置当焦点不能从该控件转移开时,哪些控件可以响应鼠标时间进行操作:setAllowd

9、MouseProcessComponents(JComponent) 设置非编辑状态下以百分数的格式显示: setPercentDisplay(true) 其他请参见控件的set*方法,提纲,KDTable控件 各种编辑类控件 格式化输入框(KDFormattedTextField) 日期选择控件(KDDatePicker) F7控件(KDPromptBox) 多语言输入框(KDMultiLangBox, KDMultiLangArea) KDList控件 KDTree控件 KDLayout布局管理器,日期选择控件(KDDatePicker),功能: 日期选择框能进行日期和时间的编辑,默认情况

10、下只能进行日期选择“年月日”,可通过调用用函数setTimeEnabled(boolean)来设置是否也有时间编辑。对日期进行编辑时,可手工直接在编辑框里进行改动,也可点击小按钮弹出一个日期选择表框进行选择。 有“是否返回空值”的可选设置。 该控件接受的数据类型必须是java.util.Date及其子类java.sql.Date,java.sql.Timestamp.,日期选择控件 常用用法,构造 KDDatePicker datePicker = new KDDatePicker(); 设置时间是否显示 datePicker.setTimeEnabled(true); /“时:分:秒”可显示

11、 datePicker.setTimeEnabled(false); /“时:分:秒”不可显示 值改变事件(注意例子的用法) datePicker.addDateChangeListener(new DataChangListener();,提纲,KDTable控件 各种编辑类控件 格式化输入框(KDFormattedTextField) 日期选择控件(KDDatePicker) F7控件(KDPromptBox) 多语言输入框(KDMultiLangBox, KDMultiLangArea) KDList控件 KDTree控件 KDLayout布局管理器,F7控件 (KDPromptBox)

12、,功能: F7控件是一个特殊的编辑控件,特点是按下F7键能够弹出辅助选框。用户使用的典型流程: 1用户按下F7键; 2控件弹出辅助选框; 3用户选择某条目,并点击确定或取消按钮,辅助选框关闭; 4控件根据辅助选框isCanceled方法得到辅助选框状态;如果是确定状态(isCanceled返回false)则通过辅助选框的getData方法获得用户选择的数据。注意:数据是从辅助选框到控件单向流动的。 5控件发出数据“将改变”事件(KDPreChangeEvent),PreChangeListener对事件参数中的数据进行处理(包括验证、属性设置等),如果preChange方法返回true;控件将

13、data的text属性设置到控件的编辑框中。 6控件发出数据改变事件。,F7控件 (KDPromptBox),EAS6.0增加的新功能: 输入查询字段后,按F8弹出过滤下拉框,在下拉框内的操作流程类似上述36,只是确定、取消按钮的功能改为在条目上双击和点击下拉框外其他地方关闭 增加了输入框联想记忆功能,可以记忆一定数量的历史输入记录,可以调用setHistoryRecordEnabled(false)来关闭,F7控件 属性,Data属性: 控件的数据属性,Object对象。正常情况下编辑框中显示的是Data的toString()返回值,在F7业务控件中,编辑框将根据客户指定格式显示。 Sele

14、ctor属性: 弹出式模式窗口,实现KDPromptSelector接口的窗口。用户通过该窗口选择数据。 Dialog属性: 废弃,被Selector属性替代。 Editable属性: 可编辑属性。如果为true,用户可以在编辑框中输入文本。 Value属性和Display属性: 由KDTable使用,由于和KDTable分布在不同包中,故可见性为public,不建议客户程序使用。,F7控件 功能调用,1清除功能 按下ctrl键,当前具有焦点的F7控件的按钮功能变为“清除数据”,同时切换图标。在该状态下点击该控件的按钮将清除数据,并发出ChangedEvent事件。 2可编辑功能 public

15、 void setEditable(boolean aFlag); public boolean isEditable(); 在可编辑状态下,Enter键为输入确认。确认后,控件将编辑框中的文本通过commitEdit方法转换为一个对象。 3焦点控制 控件失焦点时如果文字已被手动编辑则执行提交(触发KDPreChangeEvent事件)。 失焦点有以下几种情况: Tab切换或鼠标激活的切换:如果用户被手动编辑过则提交数据。 Enter切换:如果数据已经被提交,则不提交。 弹出PromptSelector:这种情况当作焦点在本控件处理,不提交数据,F7控件 功能调用,4. 数据改变事件,发生在数

16、据改变后: public void addChangeListener(ChangeListener listener); public void removeChangeListener(ChangeListener listener); 5选择框“将弹出”事件,发生在选择框弹出之前: public void addSelectorListener(SelectorListener listener); 在弹出选择框之前,监听器可以修改控件的某些属性,特别是和选择框有关的属性。参见F7业务控件说明部分。 6. Commit事件,发生在用户在编辑框中按Enter键后: public void

17、addCommitListener(CommitListener listener); 在解析编辑框中的字符串之前发出该事件,事件中带有编辑框中的文本,使用CommitEvent.getText()方法获得。其他参见F7业务控件说明部分。,F7控件 常见用法,设置f7的查询过滤 promptBox.setQueryInfo(“com.kingdee.eas.basedata.person.app.PersonQuery“); 设置可见属性 promptBox.setVisible(true); 设置边界属性 promptBox.setEditable(true); 设置显示内容 promptB

18、ox.setDisplayFormat(“$name$“); 设置编辑状态内容 promptBox.setEditFormat(“$number$“); 设置提交内容 promptBox.setCommitFormat(“$number$“);,提纲,KDTable控件 各种编辑类控件 格式化输入框(KDFormattedTextField) 日期选择控件(KDDatePicker) F7控件(KDPromptBox) 多语言输入框(KDMultiLangBox, KDMultiLangArea) KDList控件 KDTree控件 KDLayout布局管理器,多语言输入框(KDMultiLa

19、ngBox,KDMultiLangArea),功能:提供了存储多对“特定语言-该语言相关数据”映射的功能,适用于需要多语言支持的产品。 和JComboBox的Item相对应,多语言输入框使用MultiLangItem,它包含语言对象(LanguageInfo)和对应数据(Object)。 为了方便使用,多语言控件被包装为KDBizMultiLangBox和KDBizMultiLangArea两个实用控件,前者是单行,后者是多行。也可以使用KDBizMultiLangBox(KDMultiLangBox.MULTILINE)来构造一个多行多语言控件,等同于KDBizMultiLangArea。

20、语言对象 LanguageInfo 用来标识不同的语言,包含语言区域和显示图标。 区域是唯一标识一种语言的关键字; 图标可以自定义,使用setIcon方法定制图标。默认使用Locale.getDisplayName(getDefaultLocale()的前两个字母作图标。,多语言输入框 使用,使用时,应用框架首先初始化语言列表,使用createLanguageList方法。该方法有两种形式,带图标参数的形式允许客户程序指定每个区域对应的语言图标,如下: public static List createLanguageList(Locale loc, Icon icon); 需要注意的是: 1

21、. 初始化后语言列表不可更改。 2. 初始化前如果未对语言列表进行创建,那么new出来的控件就没有任何语言。 3. 如果应用框架初始化的语言列表不够用,控件可以通过addLanguage方法添加语言。 4. 如果应用框架有约定整个应用使用统一的语言列表,那么请注意慎用下面的方法,这些方法将可能改变单个控件实例的语言列表: addLanguage(LanguageInfo); addItem(.); setItemData(LanguageInfo, Object); removeItem(.); removeLanguage(LanguageInfo);,多语言输入框 使用,多语言输入框有以下

22、功能来支持客户程序: 添加一种语言 addLanguage,在列表中查找,如果没有则添加,有则不变。 添加语言和相关数据 addItem,在列表中查找,如果没有则添加,并放入数据,有则只放入数据。 删除一种语言及其关联数据 removeLanguage,removeItem,列表中找不到被删除项,则忽略;否则删除。 设置当前语言 setSelectedLanguage,指定在编辑框中显示的语言。 设置当前内容 setSelectedItemData,修改在编辑框中显示的语言的数据。,提纲,KDTable控件 各种编辑类控件 格式化输入框(KDFormattedTextField) 日期选择控件

23、(KDDatePicker) F7控件(KDPromptBox) 多语言输入框(KDMultiLangBox, KDMultiLangArea) KDList控件 KDTree控件 KDLayout布局管理器,KDList控件 功能,关于KDList及其模 KDList继承于JList。 使用KingdeeListModel(它继承于DefaultListModel,增加了图标等数据)。 实现DefaultKingdeeListCellRenderer绘制带图标的选项。 使用KDList,没有必要设置模,只须new创建然后增删选项。 例1: String s = “Item1“,“ Item2

24、“,“ Item3“; KDList list = new KDList(s); 例2: KDList list = new KDList();,KDList控件 增删选项,每个选项是一个Object 在列表末端增加一个选项 public void addElement(Object elem) 在列表中指定位置插入一个选项 public void insertElement(Object elem, int index) 在列表中指定位置重置选项,返回原选项 public Object setElement(Object elem, int index) 在列表中移除选项 public bo

25、olean removeElement(Object elem) 在列表中移除指定位置的选项 public void removeElementAt(int index) 移除列表中所有选项 public void removeAllElements() 取得列表中指定位置的选项 public Object getElement(int index),KDList控件 增删选项,取得选项在列表中的位置 public int getIndexOfElement(Object elem) 判断选项是否在列表中 public boolean isContainsElement(Object elem

26、) 获取选项个数 public int getElementCount() 例: list.addElement(“Item4”); /列表末尾追加选项 list.insertElement(“Item0”, 0); /插入选项,KDList控件 其他功能,给选项加图标 选项多列布局 设置单选/多选,KDList控件 其他功能,取得选中项 (参考JDK文档) public Object getSelectedValue() public Object getSelectedValues() public int getSelectedIndex() public int getSelected

27、Indices() 事件(参考JDK文档) 监听选中项改变 list.addListSelectionListener(ListSelectionListener) 监听鼠标事件(通过鼠标位置得到选项索引) list.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) Point p = new Point(e.getX(), e.getY(); System.out.println(list.locationToIndex(p); );,提纲,KDTable控件 各种编辑类控件 格式化输入框(K

28、DFormattedTextField) 日期选择控件(KDDatePicker) F7控件(KDPromptBox) 多语言输入框(KDMultiLangBox, KDMultiLangArea) KDList控件 KDTree控件 KDLayout布局管理器,KDTree控件,KDTree的模与节点 KDTree从JTree继承,它的模式及结构也是与JTree保持一致,而JTree使用的模DefaultTreeModel和节点DefaultMultableTreeNode不能满足KDTree的需求,于是扩展了KingdeeTreeModel和DefaultKingTreeNode。 增删节

29、点的易用性接口: 在父节点下的最后插入子节点: addNodeInto(MutableTreeNode newChild, MutableTreeNode parent) 在父节点下的指定位置插入子节点: insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index) 删除节点: removeNodeFromParent(MutableTreeNode node) 删除节点的所有子节点: removeAllChildrenFromParent(MutableTreeNode parent) 设置节点是否显示

30、CheckBox(默认为false): setShowCheckBox(boolean showCheckBox) 众多方法详见开发文档。,KDTreeView 树视图,KDTreeView实现了对KDTree的包装,将KDTree置于KDScrollPane中,并加上标题栏和操作按扭: KDTreeView treeView = new KDTreeView(tree); KDTreeView treeView = new KDTreeView(); treeView.setTree(tree); 取得KDTree:treeView.getTree() 设置顶端的标题栏是否可见 public

31、 void setShowControlPanel(boolean isShow) 设置TreeView标题 public void setTitle(String title) 设置五个常用按钮是否显示,五个按钮状态一致 public void setShowButton(boolean showButton) 新增按钮 KDWorkButton wb = new KDWorkButton(“按钮“); treeView.getControlPane().add(wb); 快捷操作 (since EAS v6.0) 按Ctrl + 1,2,3分别将整棵树展开到第1,2,3级,提纲,KDTab

32、le控件 各种编辑类控件 格式化输入框(KDFormattedTextField) 日期选择控件(KDDatePicker) F7控件(KDPromptBox) 多语言输入框(KDMultiLangBox, KDMultiLangArea) KDList控件 KDTree控件 KDLayout布局管理器,KDLayout布局管理器,功能: 通过为每一个控件添加一个停靠约束(Anchor),把设计时的绝对定位布局转化为可缩放的相对布局。 使用范围 KDLayout是专门为UIDesigner设计布局管理器,通过对设计面板上的每一控件添加一个anchor属性,KDLayout就能将UIDesign

33、er上绝对定位的布局变成可缩放的布局。如果在UIDesigner外单独使用KDLayout,需要填写更多的属性。,KDLayout 布局属性,KDLayout的内部类Constraints定义了在使用KDLayout时容器上每个控件必须填写的布局属性。 Anchor 锚定。指控件上的一边与父容器的同方向的一边或是中心点之间的固定关系。当控件的锚定后,控件位置相对父容器固定。当父容器大小改变后,控件与父容器之间的固定关系不变,控件的位置大小由父容器所决定。 在KDLayout中定义了五个锚定点、两种锚定方式,共九个锚定方式可选择;不同锚定的方式用不同的常量表示,而且可以通过逻辑运算符“或”进行搭

34、配使用。例如 “ANCHOR_BOTTOM_SCALE | ANCHOR_RIGHT”。 OriginalBound 用于记录控件在UIDesigner上的原始大小 当父控件的布局管理器是KDLayout的时候,任何手动添加到父控件的子控件一定需要使用类似c.putClientProperty(“KDLayoutConstraints“, new KDLayout.Constraints()这样的代码添加布局参数 而父控件必须使用类似c.putClientProperty(“OriginalBounds“, new Rectangle()这样的代码添加原始的大小,特别声明,没有金蝶软件(中国)

35、有限公司的特别许可,任何人不能以任何形式或为任何目的复制或传播本文档的任何部分。本文档中包含的信息如有更改,恕不另行通知。 由金蝶软件(中国)有限公司和其分销商所销售的某些软件产品包含有其它软件供应商版权所有的软件组件。 Microsoft、WINDOWS、NT、EXCEL、Word、PowerPoint 和SQL Server 是微软公司的注册商标。 IBM、DB2、DB2 通用数据库、OS/2、Parallel Sysplex、MVS/ESA、AIX、S/390、AS/400、OS/390、 OS/400、iSeries、pSeries、xSeries、zSeries、z/OS、AFP、I

36、ntelligent Miner、WebSphere、Netfinity、 Tivoli、Informix 和Informix 动态ServerTM 是IBM 公司在美国或其他公司的商标。 ORACLE 是ORACLE 公司的注册商标。 UNIX、X/Open、OSF/1 和Motif 是Open Group 的注册商标。 Citrix、Citrix 徽标、ICA、Program Neighborhood 、MetaFrame 、WinFrame 、VideoFrame 、MultiWin 以及此处引用的Citrix 产品名是Citrix Systems 公司的商标或注册商标。 HTML、DHTML、XML 和XHTML 是W3C、World Wide Web 协会、计算机科学实验室的商标或注册商标。 JAVA 是Sun Microsystems 公司的注册商标。 JAVASCRIPT Sun Microsystems 公司的注册商标,由其技术开发和实施商Netscape 许可使用。 本文档提到的金蝶 、金蝶KIS 、金蝶K/3 、金蝶EAS 、Apusic 、金蝶iFly 和其它金蝶 产品和服务以及它们各自的徽标是金蝶软件(中国)有限公司在中国和世界其它一些国家的商标或注册商标。本文档提到的所有其它产品和服务名称是它们各自公司的商标。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1