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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Jgoodies布局框架.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Jgoodies布局框架.docx

1、Jgoodies布局框架Jgoodies布局框架Jgoodies forms 白皮书1、介绍JGoodies 的forms 框架可以帮助你快速、轻松布局和实现简明的Swing panel 控件,Forms 框架是一个易用的布局框架。 这个文档将会介绍JGoodies forms 的框架和解析现有存在的布局系统,现有的设计目的是,怎么去套用Forms 的模型和API和对比forms 和其他布局系统的区别。Forms 的焦点在于以导向的形式,在例子中更像是panel控件的一部分。至少,在大多数情况下,他是个长方形布局。设计目标我们希望能尽快的构建布局,这个框架能覆盖90% 的桌面应用,可以包含负责

2、的panel ,aplications和teams,可以帮助使用者更快的构建和节省时间。From框架的源代码都是很容易读和容易理解,这个布局框架可以很好的构建一些可视化的组件。它也不需要去学习和扩展它的代码。如何使用forms 框架Forms 框架有五个需要依照的原则:1、使用网格作为一个简单的布局,跟多的布局使用网格系统;2、区分关注点;3、提供强有力的布局执行语音;4、通过字符来简化代码;5、在布局管理器上提供开发向导。1)网格系统是一个去布局元素强有力、灵活、简单的方法,专业的设计者每天工作都使用网格去寻找、衡量、和服用好的设计,看1、7、8、11页,你会发现很多用户接口程序员使用网格去

3、布局或者描绘组件,这些工作是协调好纸和笔还有至少的可视化工具。2)布局管理进程在一个类中包含一些特性,指定一个布局,填充一个控件的panel 和设置一个控件的范围,在另外一个方面,很多布局系统欠缺支持频繁的使用布局和不提供可在利用的公共设计,如果我们没有关心,使用在各种场景的类和自由的结合使用等这些问题会被忽略,forms 框架用一类去描述form中的网格,不可见的去填充form,使用布局管理器仅仅为了一个工作,计算和设置components的规格。3)在你填充你的panel之前和布局管理器设置你的组件规范之前你描述你的窗体布局,你可以在解析语音中指定你的网格布局所以阅读你的代码的人可以快速的

4、从你的代码总获取信息,修改也很容易。一个简单的指定可以应用在许多组件中,例如,你可以指定你所有的label 在列的右边。4)为了将来提高代码的可读性,在人们阅读中我们允许在代码中详细说明网格布局,简明的语音使用字符类型来执行。这种方法甚至可以用少量的代码来解析复杂的布局。5)forms 框架在布局管理器中提供抽象类去统一ui和风格,不是可视化的类建设驱动着form的布局,他们帮助你了解网格。例如 ,ButtonBarBuilder类他创建按钮条和默认空白,DefaultFormBuilt 创建带label列的panel和组件 ,且段落间隔相等。 工厂类利用builder 预制panel,But

5、tonBuildFactory 创建默认的按钮条。我们需要提到三个代码层:1、布局类:布局管理、大小、线条和约束;2、不可视的builder类去填充panel;3、工厂类声明预制的布局和panel;我们所提供的代码;1、一个demo应用;2、一份资料;3、一个很好的设计例子 Form 布局FormLoyout,是一个强大且灵活且严谨的布局管理器,组件的水平和垂直对齐都在一个强大的布局长方形框里面,每一个组件都出现在一个或者多个格子里面。明确一个form的布局,你需要明确他的列、行和选择列的组和行的组。每一个布局也仅仅是在行和列的组合中完成。FormLoyout 使用相同的API,算法和执行都在

6、列和行中。例子:基于formLoyout 的特性我们跳到例子中去。我们将会一步步的学习详细的部分和学会怎么用最少的代码写出复杂的布局。例子1(这个例子在组件加入form前创建了一个panel,它带有3个数据列和3个数据行) FormLayout layout = new FormLayout( left:pref, 6dlu, 50dlu, 4dlu, default, / columns pref, 3dlu, pref, 3dlu, pref); / rowsCellConstraints cc = new CellConstraints(); JPanel panel = new JPa

7、nel(layout); panel.add(new JLabel(Label1), cc.xy (1, 1); panel.add(new JTextField(), 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(

8、/u2026), cc.xy (5, 5);效果图例子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); CellConstraints cc = new CellConstr

9、aints(); 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, cc.xy (1, 5); builder.add(new JTextField(), cc.xy (3, 5); builder.add(new JButton(/u2026), cc

10、.xy (5, 5); JFrame jf=new JFrame(); jf.add(builder.getPanel(); jf.pack(); jf.setVisible(true);效果图例子FormLayout layout = new FormLayout( right:pref, 3dlu, default:grow, ); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); builder.setRowGroupingEnabled(true)

11、; CellConstraints cc = new CellConstraints(); / In this approach, we 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 rows height may b

12、e inconsistent with other rows. builder.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.add(new JScrol

13、lPane(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 disadvantage is that the comment area now spans / multiple cells an

14、d is slightly less flexible. / Also the rows height may be inconsistent with other rows. builder.appendSeparator(Standard + Custom Row); builder.append(Name, new JTextField(); builder.append(Comment); builder.appendRow(new RowSpec(17dlu); / Assumes line is 14, gap is 3 builder.add(new JScrollPane(ne

15、w JTextField(), cc.xywh(builder.getColumn(), builder.getRow(), 1, 2); builder.nextLine(2); / In this approach, we append two standard rows with 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 Rows); builder.appen

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1