控制器出现javafx.fxml.LoadException问题

控制器出现javafx.fxml.LoadException问题,javafx,fxml,Javafx,Fxml,我有个问题。我遇到了这样一个令人不快的例外。我也为管理员做了同样的事情,但在那里一切都正常,但在这里不行 javafx.fxml.LoadException:/C:/Users/Vlad/Desktop/%d0%9a%d1%83%d1%80%d1%81%d0%be%d0%b2%d0%b0%d1%8f%20%d1%80%d0%b0%d0%be%d1%82%d0%b0/Client/target/classes/Client menu/customerUserMenu.fxml at javafx.

我有个问题。我遇到了这样一个令人不快的例外。我也为管理员做了同样的事情,但在那里一切都正常,但在这里不行

javafx.fxml.LoadException:/C:/Users/Vlad/Desktop/%d0%9a%d1%83%d1%80%d1%81%d0%be%d0%b2%d0%b0%d1%8f%20%d1%80%d0%b0%d0%be%d1%82%d0%b0/Client/target/classes/Client menu/customerUserMenu.fxml

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2571)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at by.bsuir.bank.controller.Controller.lambda$initialize$7(Controller.java:194)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Node.fireEvent(Node.java:8411)
at javafx.scene.control.Button.fire(Button.java:185)
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)

at java.lang.Thread.run(Thread.java:748)
<?xml version="1.0" encoding="UTF-8"?>



<AnchorPane fx:id="anchorPane" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="by.bsuir.bank.controller.clientMenu.ClientMenuController">
   <children>
      <StackPane fx:id="stackPane" prefHeight="700.0" prefWidth="1000.0">
         <children>
            <AnchorPane prefHeight="700.0" prefWidth="1000.0" style="-fx-background-color: #3D4956;">
               <children>
                  <FontAwesomeIcon fx:id="backButton" fill="WHITE" iconName="ARROW_LEFT" layoutX="36.0" layoutY="70.0" size="4em" wrappingWidth="62.85714340209961" />
                  <FontAwesomeIcon fx:id="exit" fill="#00f50c" iconName="CLOSE" layoutX="943.0" layoutY="69.0" size="3em" />
                  <JFXTabPane layoutX="38.0" layoutY="87.0" prefHeight="591.0" prefWidth="934.0">
                     <tabs>
                        <Tab text="Личный кабинет">
                          <content>
                            <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" style="-fx-background-color: white;">
                                 <children>
                                    <JFXTextField fx:id="clientSecondName" focusColor="BLACK" layoutX="277.0" layoutY="36.0" prefHeight="26.0" prefWidth="229.0" unFocusColor="BLACK" />
                                    <JFXTextField fx:id="clientFirstName" focusColor="BLACK" layoutX="276.0" layoutY="85.0" prefHeight="26.0" prefWidth="232.0" unFocusColor="BLACK" />
                                    <JFXTextField fx:id="clientAddress" focusColor="BLACK" layoutX="276.0" layoutY="237.0" prefHeight="26.0" prefWidth="234.0" unFocusColor="BLACK" />
                                    <JFXTextField fx:id="clientPhoneNumber" focusColor="BLACK" layoutX="274.0" layoutY="186.0" prefHeight="26.0" prefWidth="234.0" unFocusColor="BLACK" />
                                    <JFXTextField fx:id="clientLastName" focusColor="BLACK" layoutX="277.0" layoutY="134.0" prefHeight="26.0" prefWidth="232.0" unFocusColor="BLACK" />
                                    <JFXTextField fx:id="clientPassword" focusColor="BLACK" layoutX="275.0" layoutY="338.0" prefHeight="26.0" prefWidth="234.0" unFocusColor="BLACK" />
                                    <JFXComboBox fx:id="clientClientType" focusColor="BLACK" layoutX="275.0" layoutY="392.0" prefHeight="26.0" prefWidth="235.0" unFocusColor="BLACK" />
                                    <JFXPasswordField fx:id="clientUsername" focusColor="BLACK" layoutX="276.0" layoutY="285.0" prefHeight="26.0" prefWidth="234.0" unFocusColor="BLACK" />
                                    <Label layoutX="208.0" layoutY="49.0" text="Фамилия" />
                                    <Label layoutX="228.0" layoutY="98.0" text="Имя" />
                                    <Label layoutX="207.0" layoutY="147.0" text="Отчество" />
                                    <Label layoutX="153.0" layoutY="199.0" text="Номер телефона" />
                                    <Label layoutX="224.0" layoutY="250.0" text="Адрес" />
                                    <Label layoutX="223.0" layoutY="298.0" text="Логин" />
                                    <Label layoutX="214.0" layoutY="342.0" text="Пароль" />
                                    <Label layoutX="220.0" layoutY="409.0" text="Лицо" />
                                    <JFXButton fx:id="saveClientButton" layoutX="704.0" layoutY="381.0" prefHeight="48.0" prefWidth="105.0" style="-fx-background-color: green;" text="Сохранить" />
                                    <JFXDatePicker fx:id="clientBirthday" defaultColor="BLACK" layoutX="341.0" layoutY="456.0" />
                                    <Label layoutX="233.0" layoutY="470.0" text="Дата рождения" />
                                    <Label layoutX="576.0" layoutY="49.0" text="Сумма на счёте:" />
                                    <Label fx:id="moneyLabel" layoutX="692.0" layoutY="49.0" prefHeight="18.0" prefWidth="140.0" text="0" />
                                 </children>
                              </AnchorPane>
                          </content>
                        </Tab>
                        <Tab text="Мои вклады">
                          <content>
                            <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="556.0" prefWidth="809.0">
                                 <children>
                                    <JFXTreeTableView fx:id="myDepositeTable" layoutY="-1.0" prefHeight="501.0" prefWidth="934.0">
                                       <columns>
                                          <TreeTableColumn fx:id="depositeCol" prefWidth="286.39996945858" text="Вклад" />
                                          <TreeTableColumn fx:id="startSumCol" prefWidth="213.5999755859375" text="Начальная сумма" />
                                          <TreeTableColumn fx:id="depositeStartDateCol" prefWidth="209.60006713867188" text="Дата вклада" />
                                          <TreeTableColumn fx:id="profitCol" prefWidth="224.7999267578125" text="Прибыль" />
                                       </columns>
                                    </JFXTreeTableView>
                                    <AnchorPane layoutY="500.0" prefHeight="58.0" prefWidth="934.0" style="-fx-background-color: #00BFFF;">
                                       <children>
                                          <JFXButton fx:id="takeMoneyButton" layoutX="48.0" layoutY="11.0" prefHeight="36.0" prefWidth="132.0" style="-fx-background-color: white;" text="Забрать средства">
                                             <font>
                                                <Font name="System Bold" size="13.0" />
                                             </font>
                                          </JFXButton>
                                          <JFXButton fx:id="refillButton" layoutX="506.0" layoutY="11.0" prefHeight="36.0" prefWidth="132.0" style="-fx-background-color: white;" text="Пополнить">
                                             <font>
                                                <Font name="System Bold" size="13.0" />
                                             </font>
                                          </JFXButton>
                                          <JFXButton fx:id="fullInfoButton" layoutX="758.0" layoutY="11.0" prefHeight="36.0" prefWidth="132.0" style="-fx-background-color: white;" text="Подробно">
                                             <font>
                                                <Font name="System Bold" size="13.0" />
                                             </font>
                                          </JFXButton>
                                          <JFXButton fx:id="partialWithdrawalButton" layoutX="277.0" layoutY="11.0" prefHeight="36.0" prefWidth="138.0" style="-fx-background-color: white;" text="Снять часть">
                                             <font>
                                                <Font name="System Bold" size="13.0" />
                                             </font>
                                          </JFXButton>
                                       </children>
                                    </AnchorPane>
                                 </children>
                              </AnchorPane>
                          </content>
                        </Tab>
                        <Tab text="Доступные вклады">
                          <content>
                            <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
                                 <children>
                                    <JFXTreeTableView fx:id="depositeTypeTable" prefHeight="486.0" prefWidth="934.0">
                                       <columns>
                                          <TreeTableColumn fx:id="depositeTypeClientTypeCol" prefWidth="127.20007020235062" text="Тип вклада" />
                                          <TreeTableColumn fx:id="depositeTypeView" prefWidth="112.8001708984375" text="Вид вклада" />
                                          <TreeTableColumn fx:id="depositeTypeName" prefWidth="112.80006408691406" text="Наименование" />
                                          <TreeTableColumn fx:id="depositeTypeMinSum" prefWidth="73.60009765625" text="Мин. сумма" />
                                          <TreeTableColumn fx:id="depositeTypepercent" prefWidth="44.800048828125" text="\%" />
                                          <TreeTableColumn fx:id="depositeTypeMonths" prefWidth="60.800048828125" text="Месяцы" />
                                          <TreeTableColumn fx:id="depositeTypeeCapitalization" prefWidth="68.7998046875" text="Капитализация" />
                                          <TreeTableColumn fx:id="depositeTypereFill" prefWidth="78.39990234375" text="Пополнение" />
                                          <TreeTableColumn fx:id="depositeTypeEarlyRecall" prefWidth="75.0" text="Досрочное снятие" />
                                          <TreeTableColumn fx:id="depositeTypePartialWithdrawal" prefWidth="173.60009765625" text="Частичное снятие" />
                                       </columns>
                                    </JFXTreeTableView>
                                    <AnchorPane layoutY="485.0" prefHeight="71.0" prefWidth="934.0" style="-fx-background-color: #00BFFF;">
                                       <children>
                                          <JFXButton fx:id="addDepositeButton" layoutX="393.0" layoutY="13.0" prefHeight="48.0" prefWidth="150.0" style="-fx-background-color: white;" text="Оформить" />
                                       </children></AnchorPane>
                                 </children>
                              </AnchorPane>
                          </content>
                        </Tab>
                     </tabs>
                  </JFXTabPane>
               </children>
            </AnchorPane>
         </children></StackPane>
   </children>
</AnchorPane>
БöτCustomerUserMenu.fxml

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2571)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at by.bsuir.bank.controller.Controller.lambda$initialize$7(Controller.java:194)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Node.fireEvent(Node.java:8411)
at javafx.scene.control.Button.fire(Button.java:185)
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)

at java.lang.Thread.run(Thread.java:748)
<?xml version="1.0" encoding="UTF-8"?>



<AnchorPane fx:id="anchorPane" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="by.bsuir.bank.controller.clientMenu.ClientMenuController">
   <children>
      <StackPane fx:id="stackPane" prefHeight="700.0" prefWidth="1000.0">
         <children>
            <AnchorPane prefHeight="700.0" prefWidth="1000.0" style="-fx-background-color: #3D4956;">
               <children>
                  <FontAwesomeIcon fx:id="backButton" fill="WHITE" iconName="ARROW_LEFT" layoutX="36.0" layoutY="70.0" size="4em" wrappingWidth="62.85714340209961" />
                  <FontAwesomeIcon fx:id="exit" fill="#00f50c" iconName="CLOSE" layoutX="943.0" layoutY="69.0" size="3em" />
                  <JFXTabPane layoutX="38.0" layoutY="87.0" prefHeight="591.0" prefWidth="934.0">
                     <tabs>
                        <Tab text="Личный кабинет">
                          <content>
                            <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" style="-fx-background-color: white;">
                                 <children>
                                    <JFXTextField fx:id="clientSecondName" focusColor="BLACK" layoutX="277.0" layoutY="36.0" prefHeight="26.0" prefWidth="229.0" unFocusColor="BLACK" />
                                    <JFXTextField fx:id="clientFirstName" focusColor="BLACK" layoutX="276.0" layoutY="85.0" prefHeight="26.0" prefWidth="232.0" unFocusColor="BLACK" />
                                    <JFXTextField fx:id="clientAddress" focusColor="BLACK" layoutX="276.0" layoutY="237.0" prefHeight="26.0" prefWidth="234.0" unFocusColor="BLACK" />
                                    <JFXTextField fx:id="clientPhoneNumber" focusColor="BLACK" layoutX="274.0" layoutY="186.0" prefHeight="26.0" prefWidth="234.0" unFocusColor="BLACK" />
                                    <JFXTextField fx:id="clientLastName" focusColor="BLACK" layoutX="277.0" layoutY="134.0" prefHeight="26.0" prefWidth="232.0" unFocusColor="BLACK" />
                                    <JFXTextField fx:id="clientPassword" focusColor="BLACK" layoutX="275.0" layoutY="338.0" prefHeight="26.0" prefWidth="234.0" unFocusColor="BLACK" />
                                    <JFXComboBox fx:id="clientClientType" focusColor="BLACK" layoutX="275.0" layoutY="392.0" prefHeight="26.0" prefWidth="235.0" unFocusColor="BLACK" />
                                    <JFXPasswordField fx:id="clientUsername" focusColor="BLACK" layoutX="276.0" layoutY="285.0" prefHeight="26.0" prefWidth="234.0" unFocusColor="BLACK" />
                                    <Label layoutX="208.0" layoutY="49.0" text="Фамилия" />
                                    <Label layoutX="228.0" layoutY="98.0" text="Имя" />
                                    <Label layoutX="207.0" layoutY="147.0" text="Отчество" />
                                    <Label layoutX="153.0" layoutY="199.0" text="Номер телефона" />
                                    <Label layoutX="224.0" layoutY="250.0" text="Адрес" />
                                    <Label layoutX="223.0" layoutY="298.0" text="Логин" />
                                    <Label layoutX="214.0" layoutY="342.0" text="Пароль" />
                                    <Label layoutX="220.0" layoutY="409.0" text="Лицо" />
                                    <JFXButton fx:id="saveClientButton" layoutX="704.0" layoutY="381.0" prefHeight="48.0" prefWidth="105.0" style="-fx-background-color: green;" text="Сохранить" />
                                    <JFXDatePicker fx:id="clientBirthday" defaultColor="BLACK" layoutX="341.0" layoutY="456.0" />
                                    <Label layoutX="233.0" layoutY="470.0" text="Дата рождения" />
                                    <Label layoutX="576.0" layoutY="49.0" text="Сумма на счёте:" />
                                    <Label fx:id="moneyLabel" layoutX="692.0" layoutY="49.0" prefHeight="18.0" prefWidth="140.0" text="0" />
                                 </children>
                              </AnchorPane>
                          </content>
                        </Tab>
                        <Tab text="Мои вклады">
                          <content>
                            <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="556.0" prefWidth="809.0">
                                 <children>
                                    <JFXTreeTableView fx:id="myDepositeTable" layoutY="-1.0" prefHeight="501.0" prefWidth="934.0">
                                       <columns>
                                          <TreeTableColumn fx:id="depositeCol" prefWidth="286.39996945858" text="Вклад" />
                                          <TreeTableColumn fx:id="startSumCol" prefWidth="213.5999755859375" text="Начальная сумма" />
                                          <TreeTableColumn fx:id="depositeStartDateCol" prefWidth="209.60006713867188" text="Дата вклада" />
                                          <TreeTableColumn fx:id="profitCol" prefWidth="224.7999267578125" text="Прибыль" />
                                       </columns>
                                    </JFXTreeTableView>
                                    <AnchorPane layoutY="500.0" prefHeight="58.0" prefWidth="934.0" style="-fx-background-color: #00BFFF;">
                                       <children>
                                          <JFXButton fx:id="takeMoneyButton" layoutX="48.0" layoutY="11.0" prefHeight="36.0" prefWidth="132.0" style="-fx-background-color: white;" text="Забрать средства">
                                             <font>
                                                <Font name="System Bold" size="13.0" />
                                             </font>
                                          </JFXButton>
                                          <JFXButton fx:id="refillButton" layoutX="506.0" layoutY="11.0" prefHeight="36.0" prefWidth="132.0" style="-fx-background-color: white;" text="Пополнить">
                                             <font>
                                                <Font name="System Bold" size="13.0" />
                                             </font>
                                          </JFXButton>
                                          <JFXButton fx:id="fullInfoButton" layoutX="758.0" layoutY="11.0" prefHeight="36.0" prefWidth="132.0" style="-fx-background-color: white;" text="Подробно">
                                             <font>
                                                <Font name="System Bold" size="13.0" />
                                             </font>
                                          </JFXButton>
                                          <JFXButton fx:id="partialWithdrawalButton" layoutX="277.0" layoutY="11.0" prefHeight="36.0" prefWidth="138.0" style="-fx-background-color: white;" text="Снять часть">
                                             <font>
                                                <Font name="System Bold" size="13.0" />
                                             </font>
                                          </JFXButton>
                                       </children>
                                    </AnchorPane>
                                 </children>
                              </AnchorPane>
                          </content>
                        </Tab>
                        <Tab text="Доступные вклады">
                          <content>
                            <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
                                 <children>
                                    <JFXTreeTableView fx:id="depositeTypeTable" prefHeight="486.0" prefWidth="934.0">
                                       <columns>
                                          <TreeTableColumn fx:id="depositeTypeClientTypeCol" prefWidth="127.20007020235062" text="Тип вклада" />
                                          <TreeTableColumn fx:id="depositeTypeView" prefWidth="112.8001708984375" text="Вид вклада" />
                                          <TreeTableColumn fx:id="depositeTypeName" prefWidth="112.80006408691406" text="Наименование" />
                                          <TreeTableColumn fx:id="depositeTypeMinSum" prefWidth="73.60009765625" text="Мин. сумма" />
                                          <TreeTableColumn fx:id="depositeTypepercent" prefWidth="44.800048828125" text="\%" />
                                          <TreeTableColumn fx:id="depositeTypeMonths" prefWidth="60.800048828125" text="Месяцы" />
                                          <TreeTableColumn fx:id="depositeTypeeCapitalization" prefWidth="68.7998046875" text="Капитализация" />
                                          <TreeTableColumn fx:id="depositeTypereFill" prefWidth="78.39990234375" text="Пополнение" />
                                          <TreeTableColumn fx:id="depositeTypeEarlyRecall" prefWidth="75.0" text="Досрочное снятие" />
                                          <TreeTableColumn fx:id="depositeTypePartialWithdrawal" prefWidth="173.60009765625" text="Частичное снятие" />
                                       </columns>
                                    </JFXTreeTableView>
                                    <AnchorPane layoutY="485.0" prefHeight="71.0" prefWidth="934.0" style="-fx-background-color: #00BFFF;">
                                       <children>
                                          <JFXButton fx:id="addDepositeButton" layoutX="393.0" layoutY="13.0" prefHeight="48.0" prefWidth="150.0" style="-fx-background-color: white;" text="Оформить" />
                                       </children></AnchorPane>
                                 </children>
                              </AnchorPane>
                          </content>
                        </Tab>
                     </tabs>
                  </JFXTabPane>
               </children>
            </AnchorPane>
         </children></StackPane>
   </children>
</AnchorPane>

这个客户菜单控制器

公共类ClientMenuController{ 私有静态客户端选择客户端

Gson gson = new Gson();


@FXML
private AnchorPane anchorPane;

@FXML
private Label moneyLabel;

@FXML
private Text mainLabel;

@FXML
private FontAwesomeIcon exit;

@FXML
private FontAwesomeIcon backButton;

@FXML
private StackPane stackPane;

@FXML
private JFXTreeTableView<DepositeType> depositeTypeTable;

@FXML
private TreeTableColumn<DepositeType, String> depositeTypeClientTypeCol;

@FXML
private TreeTableColumn<DepositeType, String> depositeTypeView;

@FXML
private TreeTableColumn<DepositeType, String> depositeTypeName;

@FXML
private TreeTableColumn<DepositeType, String> depositeTypeMinSum;

@FXML
private TreeTableColumn<DepositeType, String> depositeTypepercent;

@FXML
private TreeTableColumn<DepositeType, String> depositeTypeMonths;

@FXML
private TreeTableColumn<DepositeType, String> depositeTypeeCapitalization;

@FXML
private TreeTableColumn<DepositeType, String> depositeTypereFill;

@FXML
private TreeTableColumn<DepositeType, String> depositeTypeEarlyRecall;

@FXML
private TreeTableColumn<DepositeType, String> depositeTypePartialWithdrawal;

@FXML
private JFXTextField clientSecondName;

@FXML
private JFXTextField clientFirstName;

@FXML
private JFXTextField clientAddress;

@FXML
private JFXTextField clientPhoneNumber;

@FXML
private JFXTextField clientLastName;

@FXML
private JFXTextField clientPassword;

@FXML
private JFXComboBox<String> clientClientType;

@FXML
private JFXPasswordField clientUsername;

@FXML
private JFXButton saveClientButton;

@FXML
private JFXDatePicker clientBirthday;

@FXML
private JFXTreeTableView<Deposite> myDepositeTable;

@FXML
private TreeTableColumn<Deposite, String > depositeCol;

@FXML
private TreeTableColumn<Deposite, String> startSumCol;

@FXML
private TreeTableColumn<Deposite, String> depositeStartDateCol;

@FXML
private TreeTableColumn<Deposite, String> profitCol;

@FXML
private JFXButton fullInfoButton;

@FXML
private JFXButton refillButton;

@FXML
private JFXButton partialWithdrawalButton;

private ObservableList<DepositeType> depositeTypes = FXCollections.observableArrayList();

private ObservableList<Deposite> deposites = FXCollections.observableArrayList();

//private ObservableList<Visit> freeVisits = FXCollections.observableArrayList();

private ObservableList<Branch> branches = FXCollections.observableArrayList();

private ObservableList<String> specializations = FXCollections.observableArrayList();

@FXML
private JFXButton addDepositeButton;

@FXML
private JFXButton takeMoneyButton;

@FXML
public AnchorPane getAnchorPane() {
    return anchorPane;
}

@FXML
public void setDisable(boolean disable) {
    anchorPane.setDisable(disable);
}



public static void setCurrentClient(Client client) {
    ClientMenuController.selectClient = client;
}

public void setData() {

    moneyLabel.setText(String.valueOf(selectClient.getMoney()/100)+"."+String.valueOf(selectClient.getMoney()%100));
    clientSecondName.setText(selectClient.getSecondName());
    clientFirstName.setText(selectClient.getFirstName());
    clientAddress.setText(selectClient.getAddress());
    clientPhoneNumber.setText(selectClient.getPhoneNumber());
    clientLastName.setText(selectClient.getLastName());
    clientPassword.setText(selectClient.getPassword());
    clientClientType.setValue(selectClient.getClientType());
    clientUsername.setText(selectClient.getUsername());
    clientBirthday.setValue(selectClient.getBirthday());
}




@FXML
void createDialog(String message)
{
    JFXDialogLayout dialogLayout = new JFXDialogLayout();
    JFXButton button = new JFXButton("OK");
    JFXDialog dialog = new JFXDialog(stackPane,dialogLayout,JFXDialog.DialogTransition.TOP);
    button.setOnAction(event1 -> dialog.close());
    dialogLayout.setBody(new Text(message));
    dialogLayout.setActions(button);
    dialog.setTranslateX(-10);
    dialog.setMaxWidth(365);
    dialog.show();
}



@FXML
public void updateDeposites() {
    int i;
    LocalDate dateBuf;
    deposites.clear();
    List<Deposite> depositeList;
    Packet packet = new Packet();
    packet.setCommand("getDeposites");
    String response = NetClientThread.sendPacket(gson.toJson(packet));
    packet = gson.fromJson(response,Packet.class);
    Type itemsListType = new TypeToken<List<Deposite>>() {}.getType();
    depositeList = gson.fromJson(packet.getData(),itemsListType);
    for(Deposite deposite:depositeList) {
        i = 0;
        int buf = 0;
        if(deposite.getUser().equals(selectClient))
        {
                    dateBuf = LocalDate.of(deposite.getDateStart().getYear(), deposite.getDateStart().getMonth(), deposite.getDateStart().getDayOfMonth());
                    System.out.println(LocalDate.now().compareTo(dateBuf.plusMonths(1)));
                    buf = LocalDate.now().compareTo(dateBuf.plusMonths(1));
                    if (buf > 0) {
                        for(int j = 0; j<buf; j++) {
                            deposite.setProfit(deposite.getProfit() + new Double((deposite.getSum() + deposite.getProfit()) * (deposite.getDepositetype().getPercent() / 1200)).longValue());
                            deposite.setDateLastRecall(deposite.getDateLastRecall().plusMonths(1));
                        }
                        }
                }
            deposites.add(deposite);
            }
        }


public void updateData() {
    depositeTypes.clear();
    List<DepositeType> depositeTypeList;
    Packet packet = new Packet();
    packet.setCommand("getDepositeTypeList");
    String response = NetClientThread.sendPacket(gson.toJson(packet));
    packet = gson.fromJson(response,Packet.class);
    Type itemsListType = new TypeToken<List<DepositeType>>() {}.getType();
    depositeTypeList = gson.fromJson(packet.getData(),itemsListType);
    for(DepositeType depositeType:depositeTypeList) {
        if(depositeType.getClientType().equals("Всё"))
        {
            depositeTypes.add(depositeType);
        }
        if(depositeType.getClientType().equals(selectClient.getClientType())) {
            depositeTypeList.add(depositeType);
        }
    }
}

@FXML
void initialize() {
    clientClientType.getItems().add(String.valueOf("Индивидуальный предприниматель"));
    clientClientType.getItems().add(String.valueOf("Физическое лицо"));
    clientClientType.getItems().add(String.valueOf("Юридическое лицо"));
    updateData();
    updateDeposites();
    setData();
    exit.setOnMouseClicked(event -> System.exit(-1));
    backButton.setOnMouseClicked(event -> {
        Parent root = null;
        try {
            root = FXMLLoader.load(getClass().getResource("/authorization/authorisation.fxml"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        Main.setNewScene(root,1);
    });

    fullInfoButton.setOnAction(event -> {
        Deposite depositeBuf = myDepositeTable.getSelectionModel().getSelectedItem().getValue();
        try {
            Parent root;
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/client-menu/info-deposite-menu/InfoDeposite.fxml"));
            root = fxmlLoader.load();
            Main.setNewScene(root,1);
            InfoDepositeController.getInstance().setFields(depositeBuf);
        } catch (IOException e) {
            e.printStackTrace();
        }
    });
    partialWithdrawalButton.setOnAction(event -> {
        Deposite depositeBuf = myDepositeTable.getSelectionModel().getSelectedItem().getValue();
        try {
            Parent root;
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/client-menu/take-part-money-menu/takePartMoney.fxml"));
            root = fxmlLoader.load();
            Main.setNewScene(root,1);
            // AddDepositeController controller = fxmlLoader.<AddDepositeController>getController();
            TakePartMoneyController.getInstance().setFields(depositeBuf, selectClient);
        } catch (IOException e) {
            e.printStackTrace();
        }
    });
    addDepositeButton.setOnAction(event -> {
        DepositeType depositeTypeBuf = depositeTypeTable.getSelectionModel().getSelectedItem().getValue();
        try {
            Parent root;
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/client-menu/add-deposite-menu/addDeposite.fxml"));
            root = fxmlLoader.load();
            Main.setNewScene(root,1);
            // AddDepositeController controller = fxmlLoader.<AddDepositeController>getController();
            AddDepositeController.getInstance().setFields(depositeTypeBuf, selectClient);
        } catch (IOException e) {
            e.printStackTrace();
        }
    });
    takeMoneyButton.setOnAction(event -> {
        Deposite depositeBuf = myDepositeTable.getSelectionModel().getSelectedItem().getValue();
        try {
            Parent root;
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/client-menu/take-profit-menu/takeProfit.fxml"));
            root = fxmlLoader.load();
            Main.setNewScene(root,1);
            // AddDepositeController controller = fxmlLoader.<AddDepositeController>getController();
            takeProfitController.getInstance().setFields(depositeBuf, selectClient);
        } catch (IOException e) {
            e.printStackTrace();
        }
    });
    refillButton.setOnAction(event -> {
        Deposite depositeBuf = myDepositeTable.getSelectionModel().getSelectedItem().getValue();
        try {
            Parent root;
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/client-menu/refill-deposite-menu/refillDeposite.fxml"));
            root = fxmlLoader.load();
            Main.setNewScene(root,1);
            // AddDepositeController controller = fxmlLoader.<AddDepositeController>getController();
            RefillDepositeController.getInstance().setFields(depositeBuf, selectClient);
        } catch (IOException e) {
            e.printStackTrace();
        }
    });
    SimpleDateFormat formatForDateNow = new SimpleDateFormat("E yyyy.MM.dd hh:mm");





    saveClientButton.setOnAction(event -> {
        if (clientPhoneNumber.getText().length() == 0 || clientUsername.getText().length() < 5 || clientPassword.getText().length() < 8 || clientFirstName.getText().length() == 0 || clientSecondName.getText().length() == 0 || clientLastName.getText().length() == 0 || clientClientType.getSelectionModel().isEmpty() || clientBirthday.getValue() == null || clientAddress.getText().length() == 0) {
            return;
        }
        Client client = new Client(selectClient.getId(), clientUsername.getText(), clientPassword.getText(), clientFirstName.getText(),
                clientSecondName.getText(), clientLastName.getText(), clientBirthday.getValue(),
                clientClientType.getSelectionModel().getSelectedItem(), clientPhoneNumber.getText(), clientAddress.getText());
        Packet packet = new Packet();
        packet.setCommand("editClient");
        packet.setData(gson.toJson(client));
        String response = NetClientThread.sendPacket(gson.toJson(packet));
        packet = gson.fromJson(response,Packet.class);
        boolean value = gson.fromJson(packet.getData(),Boolean.class);
        if(value) {
            createDialog("Изменения прошли успешно!");
        }
        else{
            createDialog("Неудача, логин занят!");
        }
    });



}
Gson-Gson=new-Gson();
@FXML
私人锚烷锚烷;
@FXML
自有品牌moneyLabel;
@FXML
专用文本标签;
@FXML
私人FontAwesomeIcon出口;
@FXML
私人FontAwesomeIcon backButton;
@FXML
私有堆栈窗格堆栈窗格;
@FXML
私有JFXTreeTableView depositeTypeTable;
@FXML
私有TreeTableColumn存储peclienttypecol;
@FXML
私有TreeTableColumn depositeTypeView;
@FXML
私有TreeTableColumn depositeTypeName;
@FXML
私有树状柱状沉积物;
@FXML
私有树状柱状沉积物百分比;
@FXML
私人TreeTableColumn存款每月;
@FXML
私有TreeTableColumn存款;资本化;
@FXML
私有TreeTableColumn DepositeyPerefill;
@FXML
私有TreeTableColumn DepositeTypearlyRecall;
@FXML
私人TreeTableColumn存款私人提款;
@FXML
私有JFXTextField客户端SecondName;
@FXML
私有JFXTextField clientFirstName;
@FXML
私有JFXTextField客户端地址;
@FXML
私有JFXTextField客户端电话号码;
@FXML
私有JFXTextField clientLastName;
@FXML
私有JFXTextField客户端密码;
@FXML
私有JFXComboBox客户端类型;
@FXML
私有JFXPasswordField客户端用户名;
@FXML
私有JFXButton saveClientButton;
@FXML
私人JFXDatePicker客户端生日;
@FXML
私有JFXTreeTableView myDepositeTable;
@FXML
私人树状柱状储存器;
@FXML
私有树柱startSumCol;
@FXML
私人TreetableColumnDepositeStartDateCol;
@FXML
私有树型柱形profitCol;
@FXML
私有JFXButton fullInfoButton;
@FXML
专用JFXButton重新填充按钮;
@FXML
专用JFXButton部分取款按钮;
私人观察者d