JavaFXの - TextFieldのときに開いて新たなステージでの選択解除テキスト

フランシスM.:

私は、TextFieldとボタンで簡単なフォームを設計しました。

ステージが作成されると、フォームを含むシーンで、テキストフィールドは文字でプリロードされなければなりません。問題は、に示すように、フォームが示すまでは、文字が、選択されたとき、ということである画像

私は(textfield.deselectを試してみました)またはtextfield.positionCaret(1)(あるいはその両方)が、何も変わっていません。私は(そう、ユーザの書き込みに何かあれば、最初の文字が上書きされないこと)テキストフィールドにフォーカスを削除しますが、テキストの選択を解除し、最後にキャレットを移動する必要はありません。

これは私が書いたコードです。

try {
        Stage primaryStage = new Stage();
        FXMLLoader loader = new FXMLLoader();
        Pane root = loader.load(getClass().getResource("/resources/view/quick-search.fxml").openStream());
        QuickSearchCtrl quickSearchCtrl = (QuickSearchCtrl) loader.getController();
        quickSearchCtrl.text_tf.setText(text);
        quickSearchCtrl.text_tf.deselect();
        primaryStage.setTitle("");
        primaryStage.setScene(new Scene(root, 230, 54));
        primaryStage.show();
        primaryStage.setResizable(false);
    } catch (IOException e) {
        e.printStackTrace();
    }
gearquicker:

これは、悪の松葉杖が、この作品です。

quickSearchCtrl.text_tf.setText(text);
deselect(quickSearchCtrl.text_tf);

private void deselect(TextField textField) {
    Platform.runLater(() -> {
        if (textField.getText().length() > 0 &&
                textField.selectionProperty().get().getEnd() == 0) {
            deselect(textField);
        }else{
            textField.selectEnd();
            textField.deselect();
        }
    });
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=221145&siteId=1