文档章节

javaFX备忘录

fir01
 fir01
发布于 2015/04/15 13:08
字数 502
阅读 268
收藏 6

一直用的是flex,目前flex转apache好像支持力度不够,看下javaFX,企业组件也完善了,决定尝试一下。遇到一个问题,记录一下,备忘:

1、自适应布局几乎是标准布局。javaFX中有点奇特;

1)它没有width=100%,height=100%属性。

2)UI layout组件有些是默认自适应的,就是自动按父组件的高宽设置了100%的高和宽,有些又不是。

3)对于没有自动100%的组件,如VBox,HBox的子组件,如果你把TableView组件包在VBox下,发现它不会在纵轴方向自动100%宽度,而高度会自动100%。需要在组件设置类似属性:GridPane.hgrow="ALWAYS" VBox.vgrow="ALWAYS",很怪诞。而且这个属性是依赖父组件而存在的。如果父组件有GridPane,就设置GridPane.hgrow="ALWAYS",有VBox就设置VBox.vgrow="ALWAYS"。

贴个完整正确的自适应布局代码:

<?xml version="1.0" encoding="UTF-8"?>
<BorderPane prefHeight="404.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <top>
      <MenuBar BorderPane.alignment="CENTER">
        <menus>
          <Menu mnemonicParsing="false" text="File">
            <items>
              <MenuItem mnemonicParsing="false" text="Close" />
            </items>
          </Menu>
          <Menu mnemonicParsing="false" text="Edit">
            <items>
              <MenuItem mnemonicParsing="false" text="Delete" />
            </items>
          </Menu>
          <Menu mnemonicParsing="false" text="Help">
            <items>
              <MenuItem mnemonicParsing="false" text="About" />
            </items>
          </Menu>
        </menus>
         <contextMenu>
            <ContextMenu>
              <items>
                <MenuItem mnemonicParsing="false" text="Unspecified Action" />
              </items>
            </ContextMenu>
         </contextMenu>
      </MenuBar>
   </top>
   <bottom>
      <HBox alignment="BOTTOM_LEFT" BorderPane.alignment="CENTER">
         <children>
            <Button mnemonicParsing="false" text="Button" />
            <Button mnemonicParsing="false" text="Button" />
         </children>
      </HBox>
   </bottom>
   <center>
      <SplitPane dividerPositions="0.5" orientation="VERTICAL">
         <items>
            <VBox GridPane.hgrow="ALWAYS" GridPane.vgrow="ALWAYS">
               <children>
                  <HBox maxHeight="-Infinity" prefWidth="598.0" GridPane.valignment="TOP" VBox.vgrow="ALWAYS">
                     <children>
                        <Label alignment="CENTER_RIGHT" layoutX="59.0" layoutY="4.0" prefHeight="25.0" prefWidth="99.0" text="Date" />
                        <TextField>
                           <HBox.margin>
                              <Insets left="10.0" />
                           </HBox.margin>
                        </TextField>
                        <Button alignment="BASELINE_LEFT" mnemonicParsing="false" text="search">
                           <HBox.margin>
                              <Insets left="10.0" />
                           </HBox.margin>
                        </Button>
                     </children>
                     <GridPane.margin>
                        <Insets top="10.0" />
                     </GridPane.margin>
                     <VBox.margin>
                        <Insets />
                     </VBox.margin>
                     <padding>
                        <Insets bottom="5.0" top="5.0" />
                     </padding>
                  </HBox>
                  <TableView prefWidth="200.0" GridPane.hgrow="ALWAYS" VBox.vgrow="ALWAYS">
                    <columns>
                      <TableColumn prefWidth="75.0" text="C1" />
                      <TableColumn prefWidth="75.0" text="C2" />
                    </columns>
                     <GridPane.margin>
                        <Insets top="40.0" />
                     </GridPane.margin>
                  </TableView>
               </children>
            </VBox>
            <TableView prefHeight="200.0" prefWidth="200.0">
              <columns>
                <TableColumn prefWidth="75.0" text="C1" />
                <TableColumn prefWidth="75.0" text="C2" />
              </columns>
            </TableView>
         </items>
      </SplitPane>
   </center>
</BorderPane>


© 著作权归作者所有

共有 人打赏支持
fir01
粉丝 20
博文 110
码字总数 34117
作品 0
长沙
项目经理
Java 8新特性探究(十三)JavaFX 8新特性以及开发2048游戏

JavaFX主要致力于富客户端开发,以弥补swing的缺陷,主要提供图形库与media库,支持audio,video,graphics,animation,3D等,同时采用现代化的css方式支持界面设计。同时又采用XUI方式以XML方式...

OSC闲人
2014/10/19
0
28
JavaFX 架构与框架 (译)

原文地址:http://download.oracle.com/javafx/2.0/architecture/jfxpub-architecture.htm JavaFX 2.0平台是基于Java技术的富客户端平台。它使应用程序开发者更加容易的开发和部署跨平台的富...

Jeky
2011/10/09
0
26
JavaFX 11 发布,与 JDK 拆分后的首个正式大版

JavaFX 11 发布了,JavaFX 是一个强大的图形和多媒体处理工具包集合,它允许开发者来设计、创建、测试、调试和部署富客户端程序,并且和 Java 一样跨平台。由于 JavaFX 库被写成了 Java API...

h4cd
09/20
0
0
javafx官方文档学习之一Application与Stage,Scene初探

我的博文小站:http://www.xby1993.net,所有文章均为同步发布。 转载请注明作者,出处。 自jdk7u6之后javafx已经嵌入在jre之中 2 javafx UI设计工具JavaFX Scene Builder. Oracle支持的javaf...

xby1993
2013/12/08
0
0
(翻译)JavaFX高级教程:部署JavaFX2.0应用

原文地址http://download.oracle.com/javafx/2.0/deployment/jfxpub-deployment.htm (译者:由于国内学习JavaFX2.0的童鞋可能极少,加之后面的技术相对高级和复杂,另外本人时间略显不足,后...

davelet
2011/10/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部