0

早上好。

我正在做一个在 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>

非常感谢。

4

1 回答 1

0

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

于 2013-10-25T18:17:26.807 回答