微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将程序导出到 jar 文件时 JFXDatePicker 不起作用

如何解决将程序导出到 jar 文件时 JFXDatePicker 不起作用

我有一个应用程序,它使用来自 JFoenix 的两个 JFXDatePickers。它们在从 Eclipse 运行时完美运行,但在我将程序导出到 JAR 文件时不起作用。它们仍然返回认设置的文本,但是当我尝试使用它选择日期时,窗口会冻结并且应用程序没有响应。

我已经搜索过 stackoverflow 和 javafx 以及 jfoenix 文档,但似乎找不到答案。有人可以帮帮我吗?这是一个学校项目。有什么建议吗?

@FXML
private JFXDatePicker startDatePicker;

@FXML
private JFXDatePicker endDatePicker;

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

非常感谢!

编辑:谢谢你的建议,斯劳。我已经通过命令行启动了它并且没有出现任何异常。发生错误的控制器类是这个:

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();
        
    }
}

此外,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>

我的主():

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);
    }
}

感谢所有帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。