如何使用Javafx Scene Builder在vbox内的tableview中增加边框?

时间:2019-06-02 21:25:42

标签: java javafx scenebuilder

在第一个屏幕截图中,您可以看到tableview的位置正确。在第二张屏幕截图中,当将应用程序调整为最大大小时,tableview不会增长以填补从表底部到窗格底部的空白。我如何填补这一空白?我已经将所有元素的最大高度设置为最大。不知道该怎么办。

enter image description here

enter image description here

enter image description here

customer.fxml代码

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

<?import java.lang.String?>
<?import java.net.URL?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.effect.DropShadow?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Region?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>

<VBox maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gci.controllers.CustomerController">
   <children>
      <AnchorPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" styleClass="back-white" VBox.vgrow="ALWAYS">
         <children>
            <VBox layoutX="32.0" layoutY="89.0" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" style="-fx-background-color: orange; -fx-border-color: #003366;" AnchorPane.leftAnchor="25.0" AnchorPane.rightAnchor="25.0" AnchorPane.topAnchor="75.0">
               <children>
                  <HBox spacing="10.0" VBox.vgrow="NEVER">
                     <children>
                        <Button fx:id="addButton" minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#handleAddButton" prefHeight="30.0" prefWidth="85.0" text="Add">
                           <graphic>
                              <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
                                 <image>
                                    <Image url="@../assets/images/add.png" />
                                 </image>
                              </ImageView>
                           </graphic>
                           <styleClass>
                              <String fx:value="hover-hand" />
                              <String fx:value="hover-light-blue" />
                           </styleClass>
                           <effect>
                              <DropShadow height="25.0" offsetX="4.0" offsetY="4.0" radius="12.0" width="25.0" />
                           </effect>
                        </Button>
                        <Button fx:id="modifyButton" minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#handleModifyButton" prefHeight="30.0" prefWidth="85.0" text="Modify">
                           <graphic>
                              <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
                                 <image>
                                    <Image url="@../assets/images/edit.png" />
                                 </image>
                              </ImageView>
                           </graphic>
                           <styleClass>
                              <String fx:value="hover-hand" />
                              <String fx:value="hover-light-blue" />
                           </styleClass>
                           <effect>
                              <DropShadow height="25.0" offsetX="4.0" offsetY="4.0" radius="12.0" width="25.0" />
                           </effect>
                        </Button>
                        <Button fx:id="deleteButton" minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#handleDeleteButton" prefHeight="30.0" prefWidth="85.0" text="Delete">
                           <graphic>
                              <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
                                 <image>
                                    <Image url="@../assets/images/trash.png" />
                                 </image>
                              </ImageView>
                           </graphic>
                           <styleClass>
                              <String fx:value="hover-hand" />
                              <String fx:value="hover-light-blue" />
                           </styleClass>
                           <effect>
                              <DropShadow height="25.0" offsetX="4.0" offsetY="4.0" radius="12.0" width="25.0" />
                           </effect>
                        </Button>
                        <Region prefHeight="10.0" prefWidth="50.0" HBox.hgrow="ALWAYS" />
                        <Button fx:id="searchButton" minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#handleSearchButton" prefHeight="30.0" prefWidth="85.0" text="Search">
                           <graphic>
                              <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
                                 <image>
                                    <Image url="@../assets/images/search.png" />
                                 </image>
                              </ImageView>
                           </graphic>
                           <styleClass>
                              <String fx:value="hover-hand" />
                              <String fx:value="hover-light-blue" />
                           </styleClass>
                           <effect>
                              <DropShadow height="25.0" offsetX="4.0" offsetY="4.0" radius="12.0" width="25.0" />
                           </effect>
                           <HBox.margin>
                              <Insets />
                           </HBox.margin>
                        </Button>
                        <TextField fx:id="searchTextField" promptText="Search by customer name" style="-fx-prompt-text-fill: #88B3D9;" styleClass="back-light-blue" HBox.hgrow="ALWAYS">
                           <effect>
                              <DropShadow color="#3c3737" height="25.0" offsetX="4.0" offsetY="4.0" radius="12.0" width="25.0" />
                           </effect>
                        </TextField>
                     </children>
                     <VBox.margin>
                        <Insets bottom="10.0" />
                     </VBox.margin>
                  </HBox>
                  <TableView fx:id="mainTableView" focusTraversable="false" maxHeight="1.7976931348623157E308" prefHeight="528.0" prefWidth="874.0">
                     <columns>
                        <TableColumn fx:id="nameColumn" prefWidth="75.0" text="Name" />
                        <TableColumn fx:id="phoneColumn" prefWidth="75.0" text="Phone" />
                        <TableColumn fx:id="addressColumn" prefWidth="75.0" text="Address" />
                        <TableColumn fx:id="cityColumn" prefWidth="75.0" text="City" />
                        <TableColumn fx:id="postalColumn" prefWidth="75.0" text="Postal Code" />
                        <TableColumn fx:id="countryColumn" prefWidth="75.0" text="Country" />
                     </columns>
                     <columnResizePolicy>
                        <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
                     </columnResizePolicy>
                     <effect>
                        <DropShadow blurType="GAUSSIAN" height="25.0" offsetX="4.0" offsetY="4.0" radius="12.0" width="25.0" />
                     </effect>
                  </TableView>
               </children>
               <padding>
                  <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
               </padding>
            </VBox>
            <Label id="title" fx:id="titleLabel" layoutX="40.0" layoutY="14.0" text="Customers" textFill="#002e51">
               <font>
                  <Font name="PT Serif Caption" size="36.0" />
               </font>
            </Label>
         </children>
      </AnchorPane>
   </children>
   <stylesheets>
      <URL value="@../assets/stylesheets/app.css" />
      <URL value="@../assets/stylesheets/customer.css" />
   </stylesheets>
</VBox>

app.fxml代码(将customer.fxml应用于中心窗格的边框窗格仪表板)

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

<?import java.lang.String?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>

<BorderPane fx:id="border_pane" prefHeight="700.0" prefWidth="1200.0" styleClass="back-white" stylesheets="@../assets/stylesheets/app.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gci.controllers.AppController">
   <center>
      <VBox alignment="CENTER" styleClass="back-white" BorderPane.alignment="CENTER">
         <children>
            <ImageView fitHeight="400.0" fitWidth="400.0" pickOnBounds="true" preserveRatio="true">
               <image>
                  <Image url="@../assets/images/logo%20200.png" />
               </image>
            </ImageView>
         </children></VBox>
   </center>
   <left>
      <HBox BorderPane.alignment="CENTER">
         <children>
            <VBox styleClass="back-dark-blue">
               <children>
                  <HBox>
                     <children>
                        <ImageView fitHeight="200.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true">
                           <image>
                              <Image url="@../assets/images/logo%20200.png" />
                           </image>
                        </ImageView>
                     </children>
                     <padding>
                        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
                     </padding>
                     <VBox.margin>
                        <Insets bottom="5.0" />
                     </VBox.margin>
                  </HBox>
                  <VBox alignment="CENTER_LEFT" layoutX="10.0" layoutY="210.0">
                     <children>
                        <Button alignment="BASELINE_LEFT" graphicTextGap="10.0" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Appointments" VBox.vgrow="ALWAYS">
                           <styleClass>
                              <String fx:value="back-transparent" />
                              <String fx:value="fill-white" />
                              <String fx:value="fn-18" />
                              <String fx:value="hover-hand" />
                              <String fx:value="hover-light-blue" />
                           </styleClass>
                           <graphic>
                              <ImageView fitHeight="30.0" fitWidth="30.0" pickOnBounds="true" preserveRatio="true">
                                 <image>
                                    <Image url="@../assets/images/appt.png" />
                                 </image>
                              </ImageView>
                           </graphic>
                        </Button>
                     </children>
                     <VBox.margin>
                        <Insets bottom="5.0" />
                     </VBox.margin>
                     <padding>
                        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
                     </padding>
                     <styleClass>
                        <String fx:value="hover-hand" />
                        <String fx:value="hover-light-blue" />
                     </styleClass>
                  </VBox>
                  <VBox alignment="CENTER_LEFT" layoutX="10.0" layoutY="675.0">
                     <children>
                        <Button alignment="BASELINE_LEFT" graphicTextGap="10.0" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Calendar" VBox.vgrow="ALWAYS">
                           <styleClass>
                              <String fx:value="back-transparent" />
                              <String fx:value="fill-white" />
                              <String fx:value="fn-18" />
                              <String fx:value="hover-hand" />
                              <String fx:value="hover-light-blue" />
                           </styleClass>
                           <graphic>
                              <ImageView fitHeight="30.0" fitWidth="30.0" pickOnBounds="true" preserveRatio="true">
                                 <image>
                                    <Image url="@../assets/images/calendar.jpg" />
                                 </image>
                              </ImageView>
                           </graphic>
                        </Button>
                     </children>
                     <VBox.margin>
                        <Insets bottom="5.0" />
                     </VBox.margin>
                     <padding>
                        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
                     </padding>
                     <styleClass>
                        <String fx:value="hover-hand" />
                        <String fx:value="hover-light-blue" />
                     </styleClass>
                  </VBox>
                  <VBox alignment="CENTER">
                     <children>
                        <Button alignment="BASELINE_LEFT" graphicTextGap="10.0" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onMouseClicked="#show_customers" text="Customers" VBox.vgrow="ALWAYS">
                           <styleClass>
                              <String fx:value="back-transparent" />
                              <String fx:value="fill-white" />
                              <String fx:value="fn-18" />
                              <String fx:value="hover-hand" />
                              <String fx:value="hover-light-blue" />
                           </styleClass>
                           <graphic>
                              <ImageView fitHeight="30.0" fitWidth="30.0" pickOnBounds="true" preserveRatio="true">
                                 <image>
                                    <Image url="@../assets/images/customers.png" />
                                 </image>
                              </ImageView>
                           </graphic>
                        </Button>
                     </children>
                     <VBox.margin>
                        <Insets bottom="5.0" />
                     </VBox.margin>
                     <padding>
                        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
                     </padding>
                     <styleClass>
                        <String fx:value="hover-hand" />
                        <String fx:value="hover-light-blue" />
                     </styleClass>
                  </VBox>
                  <VBox alignment="CENTER_LEFT" layoutX="10.0" layoutY="675.0">
                     <children>
                        <Button alignment="BASELINE_LEFT" graphicTextGap="10.0" maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Reports">
                           <styleClass>
                              <String fx:value="back-transparent" />
                              <String fx:value="fill-white" />
                              <String fx:value="fn-18" />
                              <String fx:value="hover-hand" />
                              <String fx:value="hover-light-blue" />
                           </styleClass>
                           <graphic>
                              <ImageView fitHeight="30.0" fitWidth="30.0" pickOnBounds="true" preserveRatio="true">
                                 <image>
                                    <Image url="@../assets/images/report.png" />
                                 </image>
                              </ImageView>
                           </graphic>
                        </Button>
                     </children>
                     <VBox.margin>
                        <Insets bottom="5.0" />
                     </VBox.margin>
                     <padding>
                        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
                     </padding>
                     <styleClass>
                        <String fx:value="hover-hand" />
                        <String fx:value="hover-light-blue" />
                     </styleClass>
                  </VBox>
               </children>
            </VBox>
         </children>
      </HBox>
   </left>
   <bottom>
      <HBox alignment="CENTER" BorderPane.alignment="CENTER">
         <children>
            <Label fx:id="copyrightLabel" alignment="CENTER" prefHeight="17.0" prefWidth="393.0" text="Copyright © 2019 Global Consulting Institution">
               <styleClass>
                  <String fx:value="fill-white" />
                  <String fx:value="fn-14" />
               </styleClass>
            </Label>
         </children>
         <styleClass>
            <String fx:value="back-orange" />
            <String fx:value="fill-white" />
         </styleClass>
      </HBox>
   </bottom>
</BorderPane>

0 个答案:

没有答案