如何使用javafx显示从所选日期算起的日期?

如何使用javafx显示从所选日期算起的日期?,javafx,Javafx,我想知道如何使用javafx和scenebuilder从datepicker到textfield获取所选日期的日期名称的代码 我使用“Windows10,MySQL 5.7” 这就是我尝试的。我想在“txtDate”中获取日期的日期名称,并将其设置为txtDay,而不是手动添加它 datepicker字段的名称是txtDate) 文本字段的名称为txtDay) 我创建了一个程序,它返回从日期选择器中选择日期的日期 这是我的主课- package application; import java

我想知道如何使用javafx和scenebuilder从datepicker到textfield获取所选日期的日期名称的代码

我使用“Windows10,MySQL 5.7”

这就是我尝试的。我想在“txtDate”中获取日期的日期名称,并将其设置为txtDay,而不是手动添加它

datepicker字段的名称是txtDate) 文本字段的名称为txtDay)


我创建了一个程序,它返回从日期选择器中选择日期的日期

这是我的主课-

package application;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.TextField;


public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            Parent root = FXMLLoader.load(getClass().getResource("/application/main.fxml"));
            Scene scene = new Scene(root);
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}
这是我的控制器类-

package application;

import java.time.LocalDate;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.DatePicker;
import javafx.scene.control.Label;

public class MainController {
    @FXML DatePicker datePicker;
    @FXML Label dayLabel;

    @FXML private void handleDatePickerEvent(ActionEvent e){

        LocalDate localDate = datePicker.getValue();
        dayLabel.setText(localDate.getDayOfWeek().toString());

    }       
}
这是我的FXML文件-

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

<?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="116.0" prefWidth="338.0" xmlns="http://javafx.com/javafx/8.0.102" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainController">
   <children>
      <DatePicker fx:id="datePicker" layoutX="150.0" layoutY="22.0" onAction="#handleDatePickerEvent" />
      <Label fx:id="dayLabel" layoutX="150.0" layoutY="70.0" prefHeight="17.0" prefWidth="142.0" text="Label">
         <font>
            <Font name="System Bold" size="13.0" />
         </font></Label>
      <Label layoutX="56.0" layoutY="25.0" prefHeight="19.0" prefWidth="86.0" text="Date Picker :">
         <font>
            <Font name="System Bold" size="13.0" />
         </font>
      </Label>
      <Label layoutX="102.0" layoutY="69.0" prefHeight="19.0" prefWidth="37.0" text="Day :">
         <font>
            <Font name="System Bold" size="13.0" />
         </font>
      </Label>
   </children>
</AnchorPane>

我希望这对你有帮助


编辑:我在这个程序中使用了标签。你也可以使用文本字段,你应该只使用
日期时间格式

范例

LocalDate day = LocalDate.now(); // or myDatePicker.getValue()
DateTimeFormatter format = DateTimeFormatter.ofPattern("EEEE", Locale.getDefault());
System.out.println(day.format(format));
myLabel.setText(day.format(format));

您将在“星期三”看到您想要的内容。

只需两行代码即可完成此操作

LocalDate localDate = datePicker.getValue();
myLabel.setText(localDate.getDayOfWeek().toString());

我们不是“请编写我的代码”论坛。自己做吧,如果你没有进一步的了解,请描述你的问题,并将你迄今为止编写的代码发送给我们。如果你知道你需要什么,你可以通过谷歌搜索它,你会发现一些例子:
DatePicker
的值是
LocalDate
。检查有什么可用。这很糟糕,为什么要转换为
Date以及为什么
切换案例
?是的!这似乎是一个非常糟糕的方法。因此我编辑了我的答案。现在,没有转换到
日期
,也没有使用
切换案例
。任务已经完成。