JavaSwing.ppt_第1页
JavaSwing.ppt_第2页
JavaSwing.ppt_第3页
JavaSwing.ppt_第4页
JavaSwing.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

KD控件介绍 版权所有 1993 2006金蝶软件 中国 有限公司 目录 控件的历史EAS开发用什么控件控件的用法碰到解决不了的问题 怎么办 自由交流 控件历史 AWTAWT theAbstractWindowToolkit抽象窗口工具包 目前是Java中设计用来生成用户界面和描绘图形图画的部分 而Awt组件已经不被推荐使用 Awt组件又称之为重要级组件 这些组件依赖一个具体的平台 不是100 Java代码 不支持剪贴板 打印支持 键盘导航 弹出菜单 滚动窗口等 没有Tree Table等重要应用控件 采用的是基于对等组件的体系结构 对等组件都是在本地透明的窗口中绘制的 不能很好的跨平台 有很多的BUG Swing的诞生JavaSoft与Netscape合作共同开发java基础类 JFC JavaFundationClass Swing组件又称Lightweights 轻量级组件 Swing组件没有对等组件 是在其容器的窗口中绘制 不像重量级组件在自己本地的透明窗口上绘制 EAS用什么控件 1在EAS的DesktopApplication开发中只能使用 Swing类型的控件 且并且只能使用com kingdee bos ctrl swing包下的控件 2不能使用AWT控件 3不能使用javax swing包的控件 4UIDesigner生成的界面代码就是KD控件 KD控件的分类布局管理器事件监听器例子说明 控件用法 1KD控件是Swing类型控件 有两种方式 a扩展已有的标准Swing控件 继承于javax swing J 类型控件 比如publicclassKDButtonextendsjavax swing JButtonb新开发的控件 继承于javax swing JComponent类 比如publicclassKDTableextendsjavax swing JComponentpublicclassKDDatePickerextendsjavax swing JComponent2KD控件分类com kingdee bos ctrl swing 从不同的角度 有不同的分类 仅两个角度分析 要素结构和应用场景 KD控件分类 要素结构分类 元控件 不能在分的控件KDButton KDTextField KDTextArea KDLabelKDRadioButtonKDCheckBoxKDMenuKDMenuItemKDFormattedTextFieldKDNumberTextFieldKDBusiCurrencyField KDPanelKDScrollBar 组合控件 由元控件组合而成的控件 KDComboBoxKDListKDTreeKDDatePickerKDTableKDTabbedPane KDScrollPane 延伸一个问题 KDFrameKDDialogKDOption是什么类型呢 为什么没有KDWindow呢 应用场景分类1 1编辑录入控件文本录入控件com kingdee bos ctrl swing KDTextFieldcom kingdee bos ctrl swing KDTextAreacom kingdee bos ctrl swing KDTextPane数字录入控件com kingdee bos ctrl swing KDNumberTextField 推荐 com kingdee bos ctrl swing KDSpinnercom kingdee bos ctrl swing KDFormattedTextField 不推荐 金额录入控件com kingdee bos ctrl swing KDBusiCurrencyField 推荐 com kingdee bos ctrl swing KDCurrencyTextField 不推荐 乃至不用 2文本显示控件com kingdee bos ctrl swing KDLablel 应用场景分类2 窗口系列控件窗体com kingdee bos ctrl swing KDFrame对话框com kingdee bos ctrl swing KDDialog内部窗体com kingdee bos ctrl swing KDInternalFrame选择对话框com kingdee bos ctrl swing KDOptionPane枚举类型控件下拉列表框com kingdee bos ctrl swing KDComboBox列表框com kingdee bos ctrl swing KDList三栏 菜单栏 工具栏 状态栏 工具栏com kingdee bos ctrl swing KDToolBar菜单栏com kingdee bos ctrl swing KDMenuBar状态栏com kingdee bos ctrl swing KDStatusBar按钮类型控件功能按钮com kingdee bos ctrl swing KDButton工作区按钮com kingdee bos ctrl swing KDWorkButton菜单com kingdee bos ctrl swing KDMenu菜单项com kingdee bos ctrl swing KDMenuItem 应用场景分类3 进度 仪表类控件进度条com kingdee bos ctrl swing KDProgressBar图表类com kingdee bos ctrl swing KDChart表盘类com kingdee bos ctrl swing KDDial容器类控件普通容器com kingdee bos ctrl swing KDPanel滚动容器com kingdee bos ctrl swing KDScrollPane页签容器com kingdee bos ctrl swing KDTabbedPane分割区容器com kingdee bos ctrl swing KDSplitPane标题容器com kingdee bos ctrl swing KDContainer编辑器容器com kingdee bos ctrl swing KDLabelContainer 应用场景分类4 日期 时间控件日期类型com kingdee bos ctrl swing KDDatePicker时间com kingdee bos ctrl swing KDTimePicker选择控件单选类型com kingdee bos ctrl swing KDRadioButton菜单单选com kingdee bos ctrl swing KDRadioButtonMenuItem复选类型com kingdee bos ctrl swing KDCheckBox菜单复选com kingdee bos ctrl swing KDCheckBoxMenuItem组管理器 不是控件 com kingdee bos ctrl swing KDButtonGroup树型控件树com kingdee bos ctrl swing KDTree树视图com kingdee bos ctrl swing KDTreeView表控件表com kingdee bos ctrl swing KDTable 应用场景分类5 业务F7com kingdee bos ctl swing KDPromptBox其它分隔线条com kingdee bos ctrl swing KDSeparator文件选择框com kingdee bos ctrl swing KDFileChooser字体选择框com kingdee bos ctrl swing KDFontChooser颜色选择框com kingdee bos ctrl swing KDColorChooser多语言com kingdee bos ctrl swing KDMultiLangBox 风格设置 Swing控件支持多种不同肤色风格 比如 mac com sun java swing plaf mac MacLookAndFeelmetal javax swing plaf metal MetalLookAndFeelmotif com sun java swing plaf motif MotifLookAndFeelwindows com sun java swing plaf windows WindowsLookAndFeel 但我们的KD控件 只容许支持金蝶的肤色风格 com kingdee bos ctrl swing KingdeeLookAndFeel编码设置UIManager setLookAndFeel KindeeLookAndFeel class getName KD包的概述 KD控件的包com kingdee bos ctrl swing 控件件和实用工具集com kingdee bos ctrl swing chart 图表的辅助类com kingdee bos ctrl swing dial 表盘控件的辅助类com kingdee bos ctrl swing event 事件监听器com kingdee bos ctrl swing plaf 金蝶风格的每个控件的视图类com kingdee bos ctrl swing tree 树控件的辅助类com kingdee bos ctrl kdf table KDTable专有的包 窗口系列控件 KDFrame与KDDialogKDFrame窗体 无模态 无父类 可设标题 可设图标等 KDDialog对话框 可设模态 可设父窗口 可设标题 不可设图标 KDScrollPane滚动面板除了几个扩展的控件外 其它控件本身都不带滚动条 Swing控件不带滚动条 控件与滚动条的关系是组合关系 这个组合的母体就是KDScrollPane控件 比如KDTextAreatextArea newKDTextArea KDScrollPanescrollPane newKDScrollPane textArea KDLabelContainer编辑器容器业务需求 把文本标签和编辑控件进行组合 实际上KDLabelContaine可以把文本标签KDLabel和任何JComponent类型控件组合 出发点就是减轻布局难度 比如 KDTextFieldeditor newKDTextField KDLabelContainerlabelContainer newKDLabelContainer 姓名 editor 主要KD功能概绍 KDNumberTextField数字录入控件设置数据类型 setDataType short int float double BigDecimal等可设置精度 setPrecision 精度从0 1 2 3 4开始 分别为1 0 1 0 001 0 0001 可设置校验规则 setDataVerifyMode 可设置是否容许空值 setSupportedEmpty 可设置显示的格式 setRemoveingZeroInDispaly getNumberFeatureMode 赋值 setNumberValue Number 弃用setValue 取值 务必使用getNumberValue 注意 KDFormattedTextField已被打入冷宫 建议不要使用 KDBusiCurrencyTextField金额录入控件具备KDNumberTextField所有的功能 另具备设置币种符号 是否显示币种符号的功能 setCurrencySymbols String setRequiredCurrencySymbols boolean 主要KD功能概绍2 主要KD功能概绍3 KDButton KDWorkButton按钮 要说的就是默认情况下 按钮的大小是不能改变 想要自己控制按钮大小 需调用方法setLimitedSize boolean 控制 KDTable最复杂的控件 现在可具备Excel的一些功能 比如公式运算 多视图等 其它 请见Sun的jdkSwing使用说明和控件部写的控件使用指南 事件监听器 jdk1 2以后的事件机制 EventListener 事件监听机制 不同的控件有不同的事件监听器JButton ActionEventKeyEventMouseEventJlist ListSelectionEventMouseEvent 事件源 注册监听事件 派发监听事件 响应监听事件 结构图 组件事件用例 JButtonbu newJButton OK ActionListeneractionListener newMyActionListener bu addActionListener actionListener classMyActionListenerimplementsActionListener publicvoidactionPerformed ActionEventevent dosomething 监听器 ActionListener动作事件监听器 监听控件上的 Enter 键动作 KDButton KDTextField KDTextAreaKeyListener键盘事件监听器KDTextField KDTexArea KDButtonDataChangeListener值改变事件监听器KDNumberTextField KDBusiCurrencyTextField KDFormattedTextField当值改变时会触发 ItemListener项改变事件监听器KDComboBox当改变选择项时 触发事件 注意一点 comboBox addItemListener newItemListener publicvoiditemStateChanged ItemEventevent if event getStateChange ItemEvent SELECTED Dosomething 布局管理器 布局管理器分两种 绝对定位布局和规则定位布局 绝对定位布局就是采用控件的XY坐标和控件的高宽 在容器上进行布局 规则定位布局是采用一些定位算法 实时的根据容器的大小进行调整控件的XY坐标在容器上进行布局的 绝对定位布局在Swing中是把容器的布局管理器设置为null 规则定位布局主要有以下几种 无约束性条件的布局 FlowLayout GridLayout 有约束性条件的布局 BorderLayout GridBagLayout CardLayout 自定义的布局 KDLayout 结构图2 结构图1 绝对定位布局 控件的大小由两个因数决定 必须指定控件的大小 必须指定控件的位置坐标XY 设置控件的最小值和最大值不能起到约束作用 控件在容器上的位置和宽高的调整 不能随着容器大小的改变而改变 privateJPanelgetNullLayoutPanel if nullLayoutPanel null nullLayoutPanel newJPanel nullLayoutPanel setBorder nullLayoutPanel setLayout null JButtonbu1 newJButton ok1 bu1 setSize 80 25 bu1 setLocation 50 20 JButtonbu2 newJButton ok2 bu2 setSize 80 25 bu2 setLocation 50 100 nullLayoutPanel add bu1 nullLayoutPanel add bu2 returnnullLayoutPanel FlowLayout 控件的大小由两个因数决定 1 显示的设置控件的合适大小 setPreferredSize Dimension 优先级高 控件的大小将被固定 即使改变控件上文字的长度 控件也不能自适应改变 2 不设置控件的合适大小 依赖于控件实时的大小 比如JButton的文字由两个变成10个后 控件的大小将调整为能显示10个文字的大小 并且加上控件的Insets的大小 控件在容器上的位置和宽高的调整不能指定控件在容器上的位置 Location 完全由FlowLayout的算法计算出来设置 这一过程是自动的 排列的顺序可以设定 靠左 居中 靠右 位置是控件的合适大小 FlowLayout指定的行距和列距 可设置行距 可设置列距 行距对于容器上所有控件是相同的 列距对于容器上所有控件也是相同的 flowLayoutPanel newJPanel flowLayoutPanel setLayout newFlowLayout JButtonbu2 newJButton ok2 flowLayoutPanel add bu1 BorderLayout 控件的大小由两个因数决定 设置控件的最大值和最小值不起约束作用 设置控件的合适大小 setPreferredSize Dimension 将与其设置的约束性条件 东 南 西 北 中 一起 对控件进行大小调整 调整的策略依赖与BorderLayout的算法 North 控件宽度为容器的宽度减去容器的Insets Left和Insets right 控件的高度为控件被设置合适大小的高度 South 与North

温馨提示

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

评论

0/150

提交评论