我有下面的代碼的DatePicker:日期選擇器文本框編輯不可編輯
datepicker.getEditor().addEventFilter(MouseEvent.MOUSE_CLICKED, event -> {
datepicker.show();
}
);
當在文本框單擊,在彈出。 Datepicker popup open
問題是,當顯示彈出窗口時,我無法在文本框中輸入數字。 它是一個焦點問題嗎? 感謝您的幫助。
我有下面的代碼的DatePicker:日期選擇器文本框編輯不可編輯
datepicker.getEditor().addEventFilter(MouseEvent.MOUSE_CLICKED, event -> {
datepicker.show();
}
);
當在文本框單擊,在彈出。 Datepicker popup open
問題是,當顯示彈出窗口時,我無法在文本框中輸入數字。 它是一個焦點問題嗎? 感謝您的幫助。
據我所知,你可以從彈出窗口中選擇一個日期,但你不能在文本框中手動輸入任何東西。這是editable
的問題。
在FXML中,將editable="true"
添加到TextField標記中。或者在場景構建器中選中「可編輯」複選框。我希望這樣對你有幫助。
有一個很好的編碼:)
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.DatePicker;
import javafx.scene.control.Skin;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ExampleDatePicker extends Application {
public static void main(final String[] args) {
launch(args);
}
private DatePicker datepicker;
@Override
public void start(final Stage primaryStage) {
final StackPane stackPane = new StackPane();
this.datepicker = new DatePicker() {
@Override
protected Skin<?> createDefaultSkin() {
final DatePickerSkin datePickerSkin = (DatePickerSkin) super.createDefaultSkin();
datePickerSkin.getPopupContent().setOnKeyTyped(new EventHandler<KeyEvent>() {
@Override
public void handle(final KeyEvent ke) {
ExampleDatePicker.this.setText(ke.getCharacter());
}
});
return datePickerSkin;
}
};
this.datepicker.addEventFilter(MouseEvent.MOUSE_CLICKED, event -> {
this.datepicker.show();
});
stackPane.getChildren().add(this.datepicker);
primaryStage.setScene(new Scene(stackPane, 400.0, 200.0));
primaryStage.show();
}
public void setText(final String string) {
this.datepicker.getEditor().setText(this.datepicker.getEditor().getText() + string);
}}
我很抱歉,我沒有具體說明。它不是HTML DatePicker,它是JavaFX。 –
Heam,好的。首先抱歉,我只是在幫你。 @KeyurBhanderi您的評論對我來說沒有任何意義,但是謝謝,您應該保留自己的意見。 在FXML中,將'editable =「true」'添加到TextField標籤。或者在場景構建器中選中「可編輯」複選框。 我希望能對你有所幫助。 有一個很好的編碼:) –
謝謝,但可編輯=「假」是我想要做的相反。我想彈出消失當我鍵入東西 –