快速业务通道

JavaFX学习曲线日记-2:声明用户接口 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
{        preferredSize: {height: 200, width: 400}        row: thumbNailRow        column: mainCol      },      // selected image progress row      GroupPanel {        autoCreateContainerGaps: false        row: selectedProgressRow        column: mainCol        var row = new Row        var lblCol = new Column        var progressBarCol = new Column {resizable: true}        rows: row        columns: [lblCol, progressBarCol]        content: [        SimpleLabel {          text: "Selected Image"          row: row          column: lblCol        },        ProgressBar {          row: row          column: progressBarCol        }        ]      },      // selected image display row      Label {        opaque: true        preferredSize: {height: 300, width: 400}        row: imageRow        column: mainCol        border: LineBorder      }      ]    }    visible: true }

JavaFX学习曲线日记-2:声明用户接口(6)

时间:2011-05-07 译者:cleverpig

这段代码生成了更加完美的布局。框架中的组件之间进行了很好的分割,并且与框架的 左右两侧分别对齐。

JavaFX学习曲线日记-2:声明用户接口 - 编程入门网

图 4. JFX图片查询UI

虽然在这个框架中使用的组件前一个例子中相同,但这里使用了GroupPanel,而不是 FlowPanel和Box。当你查看原始的UI时,你会发现五个不同的行:检索行、匹配图片进度行 、列表行、选择图片进度行、被选择图片行。在这些组件被顺序放置在一个居中的列内。

而我的第二个版本也具有五行和一列。框架的主要content是一个GroupPanel,这个组件 包含了几个GroupPanel和其它组件。下面便让我们看一下在GroupPanel中是如何实现这五行 和一列的:

content: GroupPanel {    var searchRow = new Row    var matchedProgressRow = new Row    var thumbNailRow = new Row {resizable: true}    var selectedProgressRow = new Row    var imageRow = new Row {resizable: true}    var mainCol = new Column {resizable: true}    rows: [searchRow, matchedProgressRow, thumbNailRow, selectedProgressRow, imageRow]    columns: mainCo

l

第一个GroupPanel包括一个组件的数组和一个用于检索关键字输入的GroupPanel(这里 称为第二个GroupPanel)。下面就是用于检索关键字输入的GroupPanel的行列属性设置:

// search text row GroupPanel {    autoCreateContainerGaps: false    row: searchRow    column: mainCol

GroupPanel具有两个非常重要的属性:autoCreateGaps和autoCreateContainerGaps,它 们定义了如何在组件和容器之间创建间隔。这两个属性默认值为true,但由于这里已经在组 件之间创建了间隔,在第一个GroupPanel和其中包含的第二个GroupPanel之间不需要额外的 间隔,因此这里将其autoCreateContainerGaps设置为false来取掉额外的间隔。否则,检索 文本输入行将被插入不必要的边缘。要使检索文本行所在的GroupPanel组件填充父容器的相 应行、列,我们需要设置它的行和列属性为searchRow和mainCol。

检索文本行所在的GroupPanel定义了它自己的行和列,在其中包含了检索标签和文本输 入框:

var row = new Row        var searchLabelCol = new Column        var searchTextFieldCol = new Column

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号