在javafx中单击日期选择器时禁用弹出日历

时间:2016-02-05 08:54:54

标签: java javafx

我在javafx上开发程序,我使用datepicker。我想在单击日历图像时禁用弹出日历。不建议只使用textfield而不是datepicker并解析它

2 个答案:

答案 0 :(得分:0)

不使用文本字段的原因是什么?这是一个严格的要求,如果没有,你可以简单地在datePicker文本字段的顶部添加一个文本字段。并声明一个arraylist来存储用户从文本字段输入的日期。如果用户从datePicker中选择一个特定日期,并且该日期符合arraylist中的日期之一(要查看是否简单地遍历字符串arraylist中的所有内容并执行.equal比较),则将其显示在标签上。这是代码:

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

答案 1 :(得分:0)

extension=grpc.so