如何从日期选择器中获取值作为字符串,即使它不是日期格式(JavaFX)?
How to get the value from date picker as a String, even if it is not in date format (JavaFX)?
如何检索纯字符串,所以不管他们键入什么,即使它只是随机字母?谢谢。
解决方案
您可以监听DatePicker 编辑器的textProperty(或绑定)。这是一个使用侦听器的示例,日期选择器编辑器中的任何文本也会在其上方的标签中中继。
Label typedData = new Label();
picker.getEditor().textProperty().addListener((observable, oldValue, newValue) -> {
typedData.setText(newValue);
});
示例应用程序
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class PickingDates extends Application {
@Override
public void start(final Stage stage) throws Exception {
DatePicker picker = new DatePicker();
Label typedData = new Label();
picker.getEditor().textProperty().addListener((observable, oldValue, newValue) -> {
typedData.setText(newValue);
});
Button button = new Button("Button");
final VBox layout = new VBox(10, typedData, picker, button);
layout.setPadding(new Insets(10));
Scene scene = new Scene(layout);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
如何检索纯字符串,所以不管他们键入什么,即使它只是随机字母?谢谢。
解决方案
您可以监听DatePicker 编辑器的textProperty(或绑定)。这是一个使用侦听器的示例,日期选择器编辑器中的任何文本也会在其上方的标签中中继。
Label typedData = new Label();
picker.getEditor().textProperty().addListener((observable, oldValue, newValue) -> {
typedData.setText(newValue);
});
示例应用程序
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class PickingDates extends Application {
@Override
public void start(final Stage stage) throws Exception {
DatePicker picker = new DatePicker();
Label typedData = new Label();
picker.getEditor().textProperty().addListener((observable, oldValue, newValue) -> {
typedData.setText(newValue);
});
Button button = new Button("Button");
final VBox layout = new VBox(10, typedData, picker, button);
layout.setPadding(new Insets(10));
Scene scene = new Scene(layout);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}