0

I have a application which uses two JFXDatePickers from JFoenix. They work perfectly when running from Eclipse but do not work when I export the program to a JAR file. They still return the text that is set by default but when I try to select a date using it the window freezes and the application does not respond.

I've searched trough stackoverflow and javafx and jfoenix documentation but can't seem to find an answer. Can someone please help me? This is for a school project. Any suggestions?

@FXML
private JFXDatePicker startDatePicker;

@FXML
private JFXDatePicker endDatePicker;

@FXML
private void initialize() {
    this.endDatePicker.setValue(LocalDate.now());
    this.startDatePicker.setValue(LocalDate.now().withDayOfMonth(1));
}

Thank you very much!

Edit: Thank you for the suggestion, Slaw. I've launched it trough the command line and didn't get any exceptions. The controller class where the error happens is this one:

package application;

import java.time.LocalDate;

import com.jfoenix.controls.JFXDatePicker;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;

public class SeeAllQuotesFilterScreenController {

    @FXML
    private Button cancelButton;

    @FXML
    private Button enterButton;

    @FXML
    private JFXDatePicker startDatePicker;

    @FXML
    private JFXDatePicker endDatePicker;

    @FXML
    private void initialize() {
        this.endDatePicker.setValue(LocalDate.now());
        this.startDatePicker.setValue(LocalDate.now().withDayOfMonth(1));
    }

    @FXML
    void cancelButtonClicked(ActionEvent event) {
        new Alert(Alert.AlertType.INFORMATION, "changes to a different screen on the complete application").showAndWait();
    }

    @FXML
    void enterButtonClicked(ActionEvent event) {

        new Alert(Alert.AlertType.INFORMATION, "changes to a different screen on the complete application").showAndWait();
        
    }
}

Also, the fxml:

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

<?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXDatePicker?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>

<BorderPane style="-fx-background-color: #E2FAFE;" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.SeeAllQuotesFilterScreenController">
   <center>
      <BorderPane prefHeight="500.0" prefWidth="500.0" BorderPane.alignment="CENTER">
         <center>
            <VBox alignment="TOP_CENTER">
               <children>
                  <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Please choose the search criteria below.">
                     <VBox.margin>
                        <Insets left="5.0" right="5.0" top="5.0" />
                     </VBox.margin>
                  </Text>
                  <HBox alignment="CENTER">
                     <children>
                        <JFXDatePicker fx:id="startDatePicker" promptText="Start Date">
                           <HBox.margin>
                              <Insets bottom="12.0" left="12.0" right="12.0" top="12.0" />
                           </HBox.margin>
                        </JFXDatePicker>
                        <JFXDatePicker fx:id="endDatePicker" promptText="End Date">
                           <HBox.margin>
                              <Insets bottom="12.0" left="12.0" right="12.0" top="12.0" />
                           </HBox.margin>
                        </JFXDatePicker>
                     </children>
                     <padding>
                        <Insets bottom="40.0" top="40.0" />
                     </padding>
                  </HBox>
                  <JFXButton fx:id="enterButton" onAction="#enterButtonClicked" text="Enter">
                     <VBox.margin>
                        <Insets bottom="20.0" left="20.0" right="20.0" />
                     </VBox.margin></JFXButton>
               </children>
               <padding>
                  <Insets bottom="3.0" left="5.0" right="3.0" top="30.0" />
               </padding>
            </VBox>
         </center>
      </BorderPane>
   </center>
   <top>
      <HBox alignment="CENTER" prefHeight="37.0" prefWidth="500.0" BorderPane.alignment="CENTER">
         <children>
            <HBox alignment="CENTER_LEFT" HBox.hgrow="NEVER">
               <children>
                  <JFXButton fx:id="cancelButton" onAction="#cancelButtonClicked" prefHeight="25.0" prefWidth="54.0" text="Cancel" />
               </children>
            </HBox>
            <HBox>
               <children>
                  <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Search Criteria">
                     <font>
                        <Font size="18.0" />
                     </font>
                     <HBox.margin>
                        <Insets bottom="12.0" left="12.0" right="12.0" top="12.0" />
                     </HBox.margin>
                  </Text>
               </children>
            </HBox>
         </children>
      </HBox>
   </top>
</BorderPane>

My Main():

package application;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;


public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            BorderPane root = (BorderPane) FXMLLoader.load(getClass().getResource("SeeAllQuotesFilterScreen.fxml"));
            Scene scene = new Scene(root, 500, 600);
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void initialize() {

    }

    public static void main(String[] args) {
        launch(args);
    }
}

I appreciate all and any help!

Nicolas
  • 1
  • 1
  • 1
    _This is for a school project. Any suggestions?_ maybe work through your course book, in particular the chapter about creating a jar with external dependencies? – kleopatra Mar 26 '21 at 15:57
  • Launch the application from the command line to see if you get any exceptions. If you do, please post them as text, formatted as code, in the question itself. Preferably you should also provide a [mre] that gives the exception as well. – Slaw Mar 27 '21 at 04:01

0 Answers0