2016-02-05 38 views
0

點擊日期選擇器,當我制定關於JavaFX的計劃,我使用日期選擇器。我想在我點擊日曆圖片時禁用彈出日曆。不要只是用它代替文本框日期選擇器,並對其進行分析禁止彈出式日曆中的JavaFX

+0

按鈕BTN =新按鈕(); \t btn.setMinSize(50,100); \t btn.setOnAction(新的EventHandler (){ \t \t @Override \t \t公共無效手柄(ActionEvent的事件){ \t \t \t DATE2 LOCALDATE = dP2.getValue(); dayLabel2.setText(」「+ date2.getDayOfMonth()); monthLabel2.setText( 「 」+ date2.getMonthValue()); yearLabel2.setText(「」 + date2.getYear()); \t \t \t \t } \t \t}); 通常,我想讓用戶輸入日期使用鍵盤(不使用日曆圖像時彈出的日曆)。當按下按鈕,我想獲取值寫入日期選擇器文本區域。 – keopsdd

+0

你可以編輯你的帖子,而不是在評論中寫很多代碼 – EluciusFTW

回答

0

什麼是不使用文本框的背後的原因建議?這是一個嚴格的要求,如果你不能簡單地在datePicker文本框的頂部添加文本框。並聲明一個數組列表來存儲用戶從文本字段輸入的日期。如果用戶從datePicker中選擇一個特定的日期,並且該日期符合您的數組列表中的某個日期(查看是否適合簡單地遍歷字符串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(); 
    } 
0
datePicker.setEditable(false); 

datePicker.setOnMouseClicked(e -> { 
    if(!datePicker.isEditable()) 
     datePicker.hide(); 
});