JavaFX创建一个传递窗格

时间:2013-10-25 17:58:22

标签: java javafx-2

早上好。

我正在做一个模拟JavaFX中的地址簿的程序。该程序是添加,修改或删除联系人的基础。

好吧,我对程序设计的想法是有两个面板:一个用于包含联系人的表,另一个用于修改联系人数据。

嗯,我想要的是,当您打开程序时,只有包含该表的可见面板,另一个面板,只有在您想要编辑联系人时才可见。

这可能吗?

图片:

运行应用时:

http://i.imgur.com/99hWcvL.png

编辑联系人时:

http://i.imgur.com/g3Y4y8w.png

FXML:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane prefHeight="500.0" prefWidth="1145.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2">
  <!-- TODO Add Nodes -->
  <children>
    <Pane layoutX="0.0" layoutY="0.0" prefHeight="500.0" prefWidth="848.0">
      <children>
        <MenuBar layoutX="0.0" layoutY="0.0" prefWidth="848.0">
          <menus>
            <Menu mnemonicParsing="false" text="Archivo">
              <items>
                <MenuItem mnemonicParsing="false" text="Salir" />
              </items>
            </Menu>
            <Menu mnemonicParsing="false" text="Editar">
              <items>
                <MenuItem mnemonicParsing="false" text="Modificar" />
                <MenuItem mnemonicParsing="false" text="Eliminar" />
              </items>
            </Menu>
            <Menu mnemonicParsing="false" text="Acerca">
              <items>
                <MenuItem mnemonicParsing="false" text="autor.." />
              </items>
            </Menu>
          </menus>
        </MenuBar>
        <TableView layoutX="0.0" layoutY="24.0" prefHeight="476.0" prefWidth="848.0">
          <columns>
            <TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="132.0" text="Nombre" />
            <TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="137.0" text="Apellido" />
            <TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="108.0" text="F. Nacimiento" />
            <TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="123.0" text="Telefono" />
            <TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="146.0" text="email" />
            <TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="200.0" text="Direccion" />
          </columns>
        </TableView>
      </children>
    </Pane>
    <Pane layoutX="848.0" layoutY="0.0" prefHeight="500.0" prefWidth="297.0">
      <children>
        <Label layoutX="17.0" layoutY="38.0" text="Nombre:" />
        <Label layoutX="17.0" layoutY="78.0" text="Apellido:" />
        <Label layoutX="17.0" layoutY="116.0" text="F. Nacimiento:" />
        <Label layoutX="17.0" layoutY="159.0" text="Telefono:" />
        <Label layoutX="17.0" layoutY="205.0" text="Email:" />
        <Label layoutX="14.0" layoutY="250.0" text="Direccion:" />
        <TextField layoutX="110.0" layoutY="35.0" prefWidth="164.0" />
        <TextField layoutX="110.0" layoutY="75.0" prefWidth="164.0" />
        <TextField layoutX="110.0" layoutY="113.0" prefWidth="164.0" />
        <TextField layoutX="110.0" layoutY="156.0" prefWidth="164.0" />
        <TextField layoutX="110.0" layoutY="202.0" prefWidth="164.0" />
        <TextField layoutX="110.0" layoutY="247.0" prefWidth="164.0" />
        <Button layoutX="17.0" layoutY="309.0" mnemonicParsing="false" prefHeight="41.9609375" prefWidth="257.0" text="Guardar" />
        <Button layoutX="17.0" layoutY="373.0" mnemonicParsing="false" prefHeight="41.9609375" prefWidth="257.0" text="Borrar" />
        <Button layoutX="20.0" layoutY="432.0" mnemonicParsing="false" prefHeight="41.9609375" prefWidth="257.0" text="Cancelar" />
      </children>
    </Pane>
  </children>
</AnchorPane>

非常感谢。

1 个答案:

答案 0 :(得分:0)

在“编辑”MenuItem和“取消”按钮操作事件处理程序的操作上,适当地切换visibleProperty (setVisible(boolean))managedProperty (setManaged(boolean))(请参阅此属性的文档)属性Pane。要在事件处理程序中访问窗格,请为窗格指定一个fx:id,然后将其注入fxml的控制器。顺便说一下,我在这里傍晚;)。