培训基础课件常用控件介绍_第1页
培训基础课件常用控件介绍_第2页
培训基础课件常用控件介绍_第3页
培训基础课件常用控件介绍_第4页
培训基础课件常用控件介绍_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、KDTable及其它常用控件1提纲KDTable控件各种编辑类控件格式化输入框(KDFormattedTextField)日期选择控件(KDDatePicker)F7控件(KDPromptBox)多语言输入框(KDMultiLangBox, KDMultiLangArea)KDList控件KDTree控件KDLayout布局管理器KDTable控件 功能增加(删除)行或列行、列、单元的属性和值填充数据动态刷新Table数据融合选择信息编辑分组输入输出事件格式化打印辅助编辑功能添加KDTable显示后待执行动作说明表格列宽自动调整设置其他KDTable控件 用法示例增加列/ 指定插入位置tabl

2、e.addColumn(index);/ 插入到最后table.addColumn();/ 一次性添加多行addColumns(colCount);增加表头行/ 指定插入位置table.addHeadRow(index);/ 插入到最后table.addHeadRow();/ 一次性添加多个表头行table.addHeadRows(headRowCount);KDTable控件 用法示例/删除所有表头行table.removeHeadRows();/增加表体行/ 指定插入位置table.addRow(index);/ 插入到最后table.addRow();/ 一次性添加表体行table.ad

3、dRows(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为任意objectcell.setValue(value);KDTable控件 用法示例快速创建具有空数据行的table/ 利用构造函数创建有空数据行的table,下述

4、代码展示了创建具有5列,一行表头和10行空数据行的表格的两种方法。/ 方法一:KDTable table = new KDTable(5, 1, 10);/ 方法二:KDTable table = new KDTable();this.createBlankTable(5, 1, 10);提纲KDTable控件各种编辑类控件格式化输入框(KDFormattedTextField)日期选择控件(KDDatePicker)F7控件(KDPromptBox)多语言输入框(KDMultiLangBox, KDMultiLangArea)KDList控件KDTree控件KDLayout布局管理器编辑类控

5、件 概览提纲KDTable控件各种编辑类控件格式化输入框(KDFormattedTextField)日期选择控件(KDDatePicker)F7控件(KDPromptBox)多语言输入框(KDMultiLangBox, KDMultiLangArea)KDList控件KDTree控件KDLayout布局管理器格式化输入框(KDFormattedTextField)功能:只能输入合法的数字提供整数或浮点的输入(可以设置KDFormatTextedField的类型)浮点型提供精度格式化(以及负数文本颜色的变化)格式化输入框 构造例子1:构造时指定其类型:(推荐)整数型输入框KDFormattedT

6、extField integerField= new KDFormattedTextField(KDFormattedTextField.INTEGER);浮点型输入框KDFormattedTextField floatField= new KDFormattedTextField(KDFormattedTextField.DECIMAL);floatField.setPrecision(5);/精确到小数点后第5位floatField.setNegativeColor(Color.red);/设置负数颜色例子2:构造后指定其类型:(不推荐)KDFormattedTextField ftf =

7、 new KDFormattedTextField();ftf.setDataType(KDFormattedTextField. BIGDECIMAL_TYPE);格式化输入框 取值、赋值、监听取值getNumberValue()或getValue()一般赋值setNumberValue(Number)或setValue(Number)不触发事件的赋值大部分编辑类控件现在都具有了此类接口setValue(Object value, boolean fireListener)或者 setNumberValue(Number newValue, boolean fireListener)监听值改

8、变事件addDataChangeListener(DataChangeListener l)格式化输入框 其他功能设置是否支持null值:setSupportedEmpty(boolean)设置精度:setPrecision(boolean)设置当焦点不能从该控件转移开时,哪些控件可以响应鼠标时间进行操作:setAllowdMouseProcessComponents(JComponent)设置非编辑状态下以百分数的格式显示:setPercentDisplay(true) 其他请参见控件的set*方法提纲KDTable控件各种编辑类控件格式化输入框(KDFormattedTextField)日

9、期选择控件(KDDatePicker)F7控件(KDPromptBox)多语言输入框(KDMultiLangBox, KDMultiLangArea)KDList控件KDTree控件KDLayout布局管理器日期选择控件(KDDatePicker)功能:日期选择框能进行日期和时间的编辑,默认情况下只能进行日期选择“年月日”,可通过调用用函数setTimeEnabled(boolean)来设置是否也有时间编辑。对日期进行编辑时,可手工直接在编辑框里进行改动,也可点击小按钮弹出一个日期选择表框进行选择。有“是否返回空值”的可选设置。该控件接受的数据类型必须是java.util.Date及其子类ja

10、va.sql.Date,java.sql.Timestamp.日期选择控件 常用用法构造KDDatePicker datePicker = new KDDatePicker();设置时间是否显示 datePicker.setTimeEnabled(true); /“时:分:秒”可显示datePicker.setTimeEnabled(false); /“时:分:秒”不可显示值改变事件(注意例子的用法)datePicker.addDateChangeListener(new DataChangListener();提纲KDTable控件各种编辑类控件格式化输入框(KDFormattedTextF

11、ield)日期选择控件(KDDatePicker)F7控件(KDPromptBox)多语言输入框(KDMultiLangBox, KDMultiLangArea)KDList控件KDTree控件KDLayout布局管理器F7控件 (KDPromptBox)功能: F7控件是一个特殊的编辑控件,特点是按下F7键能够弹出辅助选框。用户使用的典型流程:1用户按下F7键;2控件弹出辅助选框;3用户选择某条目,并点击确定或取消按钮,辅助选框关闭;4控件根据辅助选框isCanceled方法得到辅助选框状态;如果是确定状态(isCanceled返回false)则通过辅助选框的getData方法获得用户选择的

12、数据。注意:数据是从辅助选框到控件单向流动的。5控件发出数据“将改变”事件(KDPreChangeEvent),PreChangeListener对事件参数中的数据进行处理(包括验证、属性设置等),如果preChange方法返回true;控件将data的text属性设置到控件的编辑框中。6控件发出数据改变事件。F7控件 (KDPromptBox) EAS6.0增加的新功能: 输入查询字段后,按F8弹出过滤下拉框,在下拉框内的操作流程类似上述36,只是确定、取消按钮的功能改为在条目上双击和点击下拉框外其他地方关闭 增加了输入框联想记忆功能,可以记忆一定数量的历史输入记录,可以调用setHisto

13、ryRecordEnabled(false)来关闭F7控件 属性Data属性:控件的数据属性,Object对象。正常情况下编辑框中显示的是Data的toString()返回值,在F7业务控件中,编辑框将根据客户指定格式显示。Selector属性:弹出式模式窗口,实现KDPromptSelector接口的窗口。用户通过该窗口选择数据。Dialog属性:废弃,被Selector属性替代。Editable属性:可编辑属性。如果为true,用户可以在编辑框中输入文本。Value属性和Display属性:由KDTable使用,由于和KDTable分布在不同包中,故可见性为public,不建议客户程序使用

14、。F7控件 功能调用1清除功能按下ctrl键,当前具有焦点的F7控件的按钮功能变为“清除数据”,同时切换图标。在该状态下点击该控件的按钮将清除数据,并发出ChangedEvent事件。2可编辑功能public void setEditable(boolean aFlag);public boolean isEditable();在可编辑状态下,Enter键为输入确认。确认后,控件将编辑框中的文本通过commitEdit方法转换为一个对象。3焦点控制控件失焦点时如果文字已被手动编辑则执行提交(触发KDPreChangeEvent事件)。失焦点有以下几种情况:Tab切换或鼠标激活的切换:如果用户被

15、手动编辑过则提交数据。Enter切换:如果数据已经被提交,则不提交。弹出PromptSelector:这种情况当作焦点在本控件处理,不提交数据F7控件 功能调用4. 数据改变事件,发生在数据改变后:public void addChangeListener(ChangeListener listener);public void removeChangeListener(ChangeListener listener);5选择框“将弹出”事件,发生在选择框弹出之前:public void addSelectorListener(SelectorListener listener);在弹出选择框

16、之前,监听器可以修改控件的某些属性,特别是和选择框有关的属性。参见F7业务控件说明部分。6. Commit事件,发生在用户在编辑框中按Enter键后:public void addCommitListener(CommitListener listener);在解析编辑框中的字符串之前发出该事件,事件中带有编辑框中的文本,使用CommitEvent.getText()方法获得。其他参见F7业务控件说明部分。F7控件 常见用法设置f7的查询过滤 promptBox.setQueryInfo(com.kingdee.eas.basedata.person.app.PersonQuery);设置可见

17、属性 promptBox.setVisible(true);设置边界属性 promptBox.setEditable(true);设置显示内容 promptBox.setDisplayFormat($name$);设置编辑状态内容 promptBox.setEditFormat($number$);设置提交内容 promptBox.setCommitFormat($number$);提纲KDTable控件各种编辑类控件格式化输入框(KDFormattedTextField)日期选择控件(KDDatePicker)F7控件(KDPromptBox)多语言输入框(KDMultiLangBox, K

18、DMultiLangArea)KDList控件KDTree控件KDLayout布局管理器多语言输入框(KDMultiLangBox,KDMultiLangArea)功能:提供了存储多对“特定语言-该语言相关数据”映射的功能,适用于需要多语言支持的产品。和JComboBox的Item相对应,多语言输入框使用MultiLangItem,它包含语言对象(LanguageInfo)和对应数据(Object)。为了方便使用,多语言控件被包装为KDBizMultiLangBox和KDBizMultiLangArea两个实用控件,前者是单行,后者是多行。也可以使用KDBizMultiLangBox(KDMu

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

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

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

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

23、 = Item1, Item2, 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 boo

24、lean 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)获取选项个数publi

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

26、改变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控件各种编辑类控件格式化输入框(KDFormattedTextField)日期选择控件(KDDatePic

27、ker)F7控件(KDPromptBox)多语言输入框(KDMultiLangBox, KDMultiLangArea)KDList控件KDTree控件KDLayout布局管理器KDTree控件KDTree的模与节点KDTree从JTree继承,它的模式及结构也是与JTree保持一致,而JTree使用的模DefaultTreeModel和节点DefaultMultableTreeNode不能满足KDTree的需求,于是扩展了KingdeeTreeModel和DefaultKingTreeNode。增删节点的易用性接口: 在父节点下的最后插入子节点: addNodeInto(MutableTre

28、eNode newChild, MutableTreeNode parent)在父节点下的指定位置插入子节点: insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)删除节点: removeNodeFromParent(MutableTreeNode node) 删除节点的所有子节点: removeAllChildrenFromParent(MutableTreeNode parent) 设置节点是否显示CheckBox(默认为false): setShowCheckBox(boolean show

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

30、blic 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级提纲KDTable控件各种编辑类控件格式化输入框(KDFormattedTextField)日期选择控件(KDDatePicker)F7控件(KD

31、PromptBox)多语言输入框(KDMultiLangBox, KDMultiLangArea)KDList控件KDTree控件KDLayout布局管理器KDLayout布局管理器功能:通过为每一个控件添加一个停靠约束(Anchor),把设计时的绝对定位布局转化为可缩放的相对布局。使用范围KDLayout是专门为UIDesigner设计布局管理器,通过对设计面板上的每一控件添加一个anchor属性,KDLayout就能将UIDesigner上绝对定位的布局变成可缩放的布局。如果在UIDesigner外单独使用KDLayout,需要填写更多的属性。KDLayout 布局属性KDLayout的内

32、部类Constraints定义了在使用KDLayout时容器上每个控件必须填写的布局属性。Anchor锚定。指控件上的一边与父容器的同方向的一边或是中心点之间的固定关系。当控件的锚定后,控件位置相对父容器固定。当父容器大小改变后,控件与父容器之间的固定关系不变,控件的位置大小由父容器所决定。在KDLayout中定义了五个锚定点、两种锚定方式,共九个锚定方式可选择;不同锚定的方式用不同的常量表示,而且可以通过逻辑运算符“或”进行搭配使用。例如 “ANCHOR_BOTTOM_SCALE | ANCHOR_RIGHT”。OriginalBound用于记录控件在UIDesigner上的原始大小当父控件的布局管

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论