Ich habe noch nie versucht, eine GUI zu erstellen, und ich stecke auf etwas, das wahrscheinlich nicht etwas ist, auf dem ich stecken sollte. Wie bekomme ich das Textfeld um den Text ohne Aktion zu setzen? Ich habe versucht, setText zu verwenden ... Ich weiß, dass ich es einstellen kann, wenn ich auf den Suchknopf klicke, aber ich denke nicht, dass es mir erlaubt, das zu tun und es an den Query-String anzuhängen. Jede Hilfe oder Anweisung wird sehr geschätzt.JavaFx Textfeld Text festlegen
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);
Hier ist das Textfeld. Hier wird der Text gesetzt, wenn der Benutzer auf Enter klickt. Ich würde gerne wissen, wie ich den Text ohne eine Aktion festlegen kann, wie es an eine Abfrage mit der Auswahl hinzugefügt wird, die in dem Kombinationsfeld oben getroffen wird, wenn auf die Schaltfläche geklickt wird.
//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;
}
}
Ja, das ist genau das, was ich wollte. Ich danke dir sehr! – anshanno