有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaFX创建一个可传递的窗格

早上好

我正在用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) 个答案

  1. # 1 楼答案

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