0

おはようございます。

JavaFX でアドレス帳をシミュレートするプログラムを実行しています。プログラムは、連絡先を追加、変更、または削除するための基本的なものです。

プログラム設計の私の考えは、2 つのパネルを持つことです。1 つは連絡先を含むテーブル用で、もう 1 つは連絡先データを変更するためのパネルです。

さて、私が望むのは、プログラムを開いたときに、テーブルを含むパネルのみが表示され、他のパネルは連絡先を編集する場合にのみ表示されることです。

それは可能ですか?

画像:

アプリを実行すると:

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

「Edit」MenuItem および「Cancel」Button アクション イベント ハンドラの on the action のプロパティvisibleProperty (setVisible(boolean))managedProperty (setManaged(boolean))(このプロパティのドキュメントを参照) を適切に切り替えます。Paneイベント ハンドラーでペインにアクセスするには、ペインに fx:id を与えてから、それを fxml のコントローラーに挿入します。ところで、私にとってここは夕方です ;)。

于 2013-10-25T18:17:26.807 に答える