ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:177.72KB ,
资源ID:8973294      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8973294.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Jgoodies布局框架.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Jgoodies布局框架.docx

1、Jgoodies –forms 白皮书 1、 介绍 JGoodies 的forms 框架可以帮助你快速、轻松布局和实现简明的Swing panel 控件, Forms 框架是一个易用的布局框架。 这个文档将会介绍JGoodies forms 的框架和解析现有存在的布局系统,现有的设计目的是,怎么去套用Forms 的模型和API和对比forms 和其他布局系统的区别。 Forms 的焦点在于以导向的形式,在例子中更像是panel控件的一部分。至少,在大多数情况下,他是个长方形布局。 上图使用了forms 的布局

2、 内容 介绍 Form的布局 Form的创建 Form的工厂 Form 和其他的布局框架对比 其他模式 现存在的布局系统的缺点 我发现很对开发员面临现有布局系统带来的相同问题:这些布局系统很难去了解和使用,他们不能体现出人们思想的布局模型,这些工具没有区分关系,例如:一个布局管理器怎么去指定布局和填充容器。 源代码通常很难去阅读,你很难从代码里面了解布局是怎么样的,一些布局管理器是很难用的,例如,如果你想改变外观或者方案,只提供一些像素大小并没有提供一些属性来使用。 一些布局系统是可以扩展的,但是却没有提供公共的布局,直到一些开发员挖掘

3、一些细节才发现不能使用。 设计目标 我们希望能尽快的构建布局,这个框架能覆盖90% 的桌面应用,可以包含负责的panel ,aplications和teams,可以帮助使用者更快的构建和节省时间。 From框架的源代码都是很容易读和容易理解,这个布局框架可以很好的构建一些可视化的组件。它也不需要去学习和扩展它的代码。 如何使用forms 框架 Forms 框架有五个需要依照的原则: 1、 使用网格作为一个简单的布局,跟多的布局使用网格系统; 2、 区分关注点; 3、 提供强有力的布局执行语音; 4、 通过字符来简化代码; 5、 在布局管理器上

4、提供开发向导。 1)网格系统是一个去布局元素强有力、灵活、简单的方法,专业的设计者每天工作都使用网格去寻找、衡量、和服用好的设计,看1、7、8、11页,你会发现很多用户接口程序员使用网格去布局或者描绘组件,这些工作是协调好纸和笔还有至少的可视化工具。 2)布局管理进程在一个类中包含一些特性,指定一个布局,填充一个控件的panel 和设置一个控件的范围,在另外一个方面,很多布局系统欠缺支持频繁的使用布局和不提供可在利用的公共设计,如果我们没有关心,使用在各种场景的类和自由的结合使用等这些问题会被忽略,forms 框架用一类去描述form中的网格,不可见的去填充form,使用布局管理器

5、仅仅为了一个工作,计算和设置components的规格。 3)在你填充你的panel之前和布局管理器设置你的组件规范之前你描述你的窗体布局,你可以在解析语音中指定你的网格布局所以阅读你的代码的人可以快速的从你的代码总获取信息,修改也很容易。一个简单的指定可以应用在许多组件中,例如,你可以指定你所有的label 在列的右边。 4)为了将来提高代码的可读性,在人们阅读中我们允许在代码中详细说明网格布局,简明的语音使用字符类型来执行。这种方法甚至可以用少量的代码来解析复杂的布局。 5)forms 框架在布局管理器中提供抽象类去统一ui和风格,不是可视化的类建设驱动着form的布局,他们帮助

6、你了解网格。例如 ,ButtonBarBuilder类他创建按钮条和默认空白,DefaultFormBuilt 创建带label列的panel和组件 ,且段落间隔相等。 工厂类利用builder 预制panel,ButtonBuildFactory 创建默认的按钮条。 我们需要提到三个代码层: 1、 布局类:布局管理、大小、线条和约束; 2、 不可视的builder类去填充panel; 3、 工厂类声明预制的布局和panel; 我们所提供的代码; 1、 一个demo应用; 2、 一份资料; 3、 一个很好的设计例子 Form 布局 Fo

7、rmLoyout,是一个强大且灵活且严谨的布局管理器,组件的水平和垂直对齐都在一个强大的布局长方形框里面,每一个组件都出现在一个或者多个格子里面。明确一个form的布局,你需要明确他的列、行和选择列的组和行的组。每一个布局也仅仅是在行和列的组合中完成。FormLoyout 使用相同的API,算法和执行都在列和行中。 例子:基于formLoyout 的特性我们跳到例子中去。我们将会一步步的学习详细的部分和学会怎么用最少的代码写出复杂的布局。 例子1(这个例子在组件加入form前创建了一个panel,它带有3个数据列和3个数据行) FormLayout layout = new

8、 FormLayout( "left:pref, 6dlu, 50dlu, 4dlu, default", // columns "pref, 3dlu, pref, 3dlu, pref"); // rows CellConstraints cc = new CellConstraints(); JPanel panel = new JPanel(layout); panel.add(new JLabel("Label1"), cc.xy (1, 1)); panel.add(new JTextField()

9、 cc.xywh(3, 1, 3, 1)); panel.add(new JLabel("Label2"), cc.xy (1, 3)); panel.add(new JTextField(), cc.xy (3, 3)); panel.add(new JLabel("Label3"), cc.xy (1, 5)); panel.add(new JTextField(), cc.xy (3, 5)); panel.add(new JButton("/u2026"), cc.xy (5, 5));

10、 效果图 例子2(使用panelBuilder 类,这个例子创建了一个在组件加入form之前使用PanelBuilder去创建一个panel) FormLayout layout = new FormLayout( "right:pref, 6dlu, 50dlu, 4dlu, default", // columns "pref, 3dlu, pref, 3dlu, pref"); // rows PanelBuilder builder = new PanelBuilder(layout);

11、 CellConstraints cc = new CellConstraints(); builder.addLabel("Label1", cc.xy (1, 1)); builder.add(new JTextField(), cc.xywh(3, 1, 3, 1)); builder.addLabel("Label2", cc.xy (1, 3)); builder.add(new JTextField(), cc.xy (3, 3)); builder.addLabel("Label3"

12、 cc.xy (1, 5)); builder.add(new JTextField(), cc.xy (3, 5)); builder.add(new JButton("/u2026"), cc.xy (5, 5)); JFrame jf=new JFrame(); jf.add(builder.getPanel()); jf.pack(); jf.setVisible(true); 效果图 例子 FormLayout layout = new FormLayout(

13、 "right:pref, 3dlu, default:grow", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); builder.setRowGroupingEnabled(true); CellConstraints cc = new CellConstraints(); // In this approach, we

14、 add a gap and a custom row. // The advantage of this approach is, that we can express // the row spec and comment area cell constraints freely. // The disadvantage is the misalignment of the leading label. // Also the row's height may be inconsistent with other rows. b

15、uilder.appendSeparator("Single Custom Row"); builder.append("Name", new JTextField()); builder.appendRow(builder.getLineGapSpec()); builder.appendRow(new RowSpec("top:31dlu")); // Assumes line is 14, gap is 3 builder.nextLine(2); builder.append("Comment"); builder

16、add(new JScrollPane(new JTextField()), cc.xy(builder.getColumn(), builder.getRow(), "fill, fill")); builder.nextLine(); // In this approach, we append a standard row with gap before it. // The advantage is, that the leading label is aligned well. // The d

17、isadvantage is that the comment area now spans // multiple cells and is slightly less flexible. // Also the row's height may be inconsistent with other rows. builder.appendSeparator("Standard + Custom Row"); builder.append("Name", new JTextField()); builder.append("Comm

18、ent"); builder.appendRow(new RowSpec("17dlu")); // Assumes line is 14, gap is 3 builder.add(new JScrollPane(new JTextField()), cc.xywh(builder.getColumn(), builder.getRow(), 1, 2)); builder.nextLine(2); // In this approach, we append two standard rows with

19、 associated gaps. // The advantage is, that the leading label is aligned well, // and the height is consistent with other rows. // The disadvantage is that the comment area now spans // multiple cells and is slightly less flexible. builder.appendSeparator("Two Standard

20、Rows"); builder.append("Name", new JTextField()); builder.append("Comment"); builder.nextLine(); builder.append(""); builder.nextRow(-2); builder.add(new JScrollPane(new JTextArea()), cc.xywh(builder.getColumn(), builder.getRow(), 1, 3)); JFr

21、ame jf=new JFrame(); jf.add(builder.getPanel()); jf.pack(); jf.setVisible(true); ButtonBarBuilder2 builder = new ButtonBarBuilder2(); builder.addGlue(); builder.addButton(new JButton("01")); builder.addRelatedGap(); builder.addButton(new JButton("02")); builder.addRelatedGap(); builder.addButton(new JButton("03")); 图片

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服