JavaFx Text Field 设置文本

JavaFx Text Field set text

我从未尝试过创建 GUI,我被困在了一些可能不应该被困的事情上。如何让文本字段在没有操作的情况下设置文本?我尝试使用 setText... 我知道我可以在单击搜索按钮时设置它,但我认为它不允许我这样做并将其附加到查询字符串。非常感谢任何帮助或指导。

    import javafx.application.Application;
    import javafx.geometry.Insets;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.ComboBox;
    import javafx.scene.control.Label;
    import javafx.scene.control.TextField;
    import javafx.scene.layout.GridPane;
    import javafx.stage.Stage;

    public class gui extends Application {

        Stage window;
        ComboBox<String> dropDown;
        Button button;
        TextField searchString;
        String dropField;
        String inputText;
        String queryText;


        public static void main(String[] args) {

            Application.launch(args);
        }

        @Override
        public void start(Stage primaryStage) throws Exception {
            window = primaryStage;
            window.setTitle("Deep Search");

            GridPane layout = new GridPane();
            layout.setPadding(new Insets(10, 10, 10, 10));
            layout.setVgap(8);
            layout.setHgap(10);

            //ComboBox Label
            Label comboLabel = new Label("Field:");
            GridPane.setConstraints(comboLabel, 0,0);

            //ComboBox
            dropDown = new ComboBox<>();
            dropDown.getItems().addAll(
                    "all_fields",
                    "identifier",
                    "component",
                    "de_manager",
                    "de_priority",
                    "engineer",
                    "found",
                    "headline",
                    "integrated_releases_text",
                    "product",
                    "project",
                    "severity",
                    "status",
                    "submitted_on",
                    "submitter_id",
                    "version_text"
            );
            dropDown.setPromptText("Select Search Field");
            dropDown.setOnAction( e -> setSearchField());
            GridPane.setConstraints(dropDown, 2, 0);

            //search box
            searchString = new TextField();
            searchString.setOnAction( e -> setSearchText());
            searchString.setPromptText("Enter search string...");
            GridPane.setConstraints(searchString, 2, 2);

这是文本字段。在这里,文本是在用户按下回车键时设置的。我想知道如何在没有操作的情况下设置文本,因为它是附加到查询的,单击按钮时在上面的组合框中做出选择。

            //Search button
            button = new Button("Search");
            button.setOnAction( e -> queryMethod());
            GridPane.setConstraints(button, 2, 10);

            layout.getChildren().addAll(comboLabel, dropDown, searchString, button);

            Scene scene = new Scene(layout, 300, 200);
            window.setScene(scene);
            window.show();
        }

        private void setSearchField(){

            dropField = dropDown.getValue();
        }

        private void setSearchText(){

            inputText = searchString.getText();

        }

        private void queryMethod(){

            queryText = "SELECT identifier, component, de_manager,  de_priority, engineer, found, headline, " +
                    "integrated_releases_text, product, project, severity, status, submitted_on, submitter_id, " +
                    "version_text FROM BUG WHERE " + dropField + ":" + inputText;
        }

    }

不太清楚你在问什么,但我想你只是想从 queryMethod():

中的文本字段中获取文本
    private void queryMethod(){

        queryText = "SELECT identifier, component, de_manager,  de_priority, engineer, found, headline, " +
                "integrated_releases_text, product, project, severity, status, submitted_on, submitter_id, " +
                "version_text FROM CDETS_ETL_BUG WHERE " + dropField + ":" + searchString.getText();
    }