快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
习曲线日记-2:声明用户接口(5) 时间:2011-05-07 译者:cleverpig

GroupPanel 和 GroupLayout

为了实现能够自动设置组件大小并使其充满容器空间的布局,我决定尝试 javafx.ui.GroupPanel接口。这个接口使用了Swing的GroupLayout,因此它能够实现更加精 确地表现布局。

GroupPanel组件使用行和列来定位在表格中的组件。它能够自动在组件和其容器之间提 供平台特定(platform-specific)的间隔,以达到布局的目的。另外,它能够很好地对齐 组件。GroupPanel简化了Swing的GroupLayout,使其更加易于编写。

下面是UI的第二个版本JFXImageSearchUI.fx:

package com.sun.demo.jfx; import javafx.ui.Frame; import javafx.ui.GroupPanel; import javafx.ui.Row; import javafx.ui.Column; import javafx.ui.SimpleLabel; import javafx.ui.Label; import javafx.ui.TextField; import javafx.ui.ProgressBar; import javafx.ui.LineBorder; import javafx.ui.ListBox; Frame {    title: "JavaFX Image Search"    content:      // main panel within the frame      GroupPanel {      // define the five rows and main column      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}      // declare the five rows and the column      rows: [searchRow, matchedProgressRow, thumbNailRow, selectedProgressRow, imageRow]      columns: mainCol      // provide the array of components in the frame      content: [      // search text row      GroupPanel {        autoCreateContainerGaps: false        row: searchRow        column: mainCol        var row = new Row        var searchLabelCol = new Column        var searchTextFieldCol = new Column {          resizable: true        }        rows: row        columns: [searchLabelCol, searchTextFieldCol]        content: [        SimpleLabel {          text: "Search:"          row: row          column: searchLabelCol        },        TextField {          row: row          column: searchTextFieldCol          columns: 50        }        ]      },      // matching images progress panel row      GroupPanel {        autoCreateContainerGaps: false        row: matchedProgressRow        column: mainCol        var row = new Row        var lblCol = new Column        var progressBarCol = new Column {resizable: true}        rows: row        columns: [lblCol, progressBarCol]        content: [        SimpleLabel {          text: "Matched Images"          row: row          column: lblCol        },        ProgressBar {          row: row          column: progressBarCol        }        ]      },      // thumbnail list row      ListBox

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号