在javafx中单击日期选择器时禁用弹出日历
我正在javafx上开发程序,我使用datepicker。我想在单击日历图像时禁用弹出式日历。不要建议只使用textfield而不是datepicker并解析它不使用textfield的原因是什么??这是一个严格的要求吗?如果不是,您可以简单地在datePicker textfield的顶部添加一个textfield。并声明一个arraylist来存储用户从textfield输入的日期。如果用户从datePicker中选择了一个特定的日期,并且该日期适合arraylist中的一个日期(以查看fit是否只是循环遍历字符串arraylist中的所有内容并进行.equal比较),则将其显示在标签上。代码如下:在javafx中单击日期选择器时禁用弹出日历,java,javafx,Java,Javafx,我正在javafx上开发程序,我使用datepicker。我想在单击日历图像时禁用弹出式日历。不要建议只使用textfield而不是datepicker并解析它不使用textfield的原因是什么??这是一个严格的要求吗?如果不是,您可以简单地在datePicker textfield的顶部添加一个textfield。并声明一个arraylist来存储用户从textfield输入的日期。如果用户从datePicker中选择了一个特定的日期,并且该日期适合arraylist中的一个日期(以查看fi
@Override
public void start(Stage primaryStage) {
try {
String pattern = "yyyy-dd-MM";
ArrayList<String> al = new ArrayList<String>();
Pane pane = new Pane();
TextField tf = new TextField();
Label lb = new Label();
DatePicker datePicker = new DatePicker();
tf.setPromptText(pattern);
lb.setLayoutX(200);
lb.setLayoutY(250);
lb.setText("To know where the label is");
Scene scene = new Scene(pane, 400, 400);
primaryStage.setScene(scene);
pane.getChildren().addAll(datePicker,tf,lb);
primaryStage.show();
datePicker.setOnAction(event -> {
for(int x=0;x<al.size();x++)
{
System.out.println(al.get(x));
System.out.println(datePicker.getValue().toString());
if(datePicker.getValue().toString().equals( al.get(x).toString()))
{
lb.setText("is a checked date");
}
}
});
tf.setOnAction(event -> {
al.add(tf.getText());
System.out.println(al.get(0).toString());
});
} catch(Exception e) {
e.printStackTrace();
}
@覆盖
公共无效开始(阶段primaryStage){
试一试{
字符串模式=“yyyy-dd-MM”;
ArrayList al=新的ArrayList();
窗格=新窗格();
TextField tf=新的TextField();
标签lb=新标签();
DatePicker DatePicker=新的日期选择器();
tf.setPrompText(模式);
lb.setLayoutX(200);
lb.setLayoutY(250);
lb.setText(“知道标签在哪里”);
场景=新场景(窗格,400400);
初级阶段。场景(场景);
pane.getChildren().addAll(日期选择器、tf、lb);
primaryStage.show();
datePicker.setOnAction(事件->{
对于(int x=0;x{
al.add(tf.getText());
System.out.println(al.get(0.toString());
});
}捕获(例外e){
e、 printStackTrace();
}
Button btn=new Button();btn.setMinSize(50100);btn.setOnAction(new EventHandler(){@Override public void handle(ActionEvent事件){LocalDate date2=dP2.getValue();dayLabel2.setText(“+date2.getdayofmon());monthLabel2.setText(“+date2.getMonthValue());yearLabel2.setText(”+date2.getYear();}});通常,我想让用户使用键盘输入日期(而不是使用日历,当您单击日历图像时会弹出日历)。按下按钮时,我想在datepicker文本区域中写入值。您可以编辑您的帖子,而不必在评论中写入太多代码
datePicker.setEditable(false);
datePicker.setOnMouseClicked(e -> {
if(!datePicker.isEditable())
datePicker.hide();
});