早上好。
我正在做一个模拟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>
非常感谢。
答案 0 :(得分:0)
在“编辑”MenuItem和“取消”按钮操作事件处理程序的操作上,适当地切换visibleProperty (setVisible(boolean))
和managedProperty (setManaged(boolean))
(请参阅此属性的文档)属性Pane
。要在事件处理程序中访问窗格,请为窗格指定一个fx:id,然后将其注入fxml的控制器。顺便说一下,我在这里傍晚;)。