2016-04-05 7 views
0

私はGUIを作成しようとしたことはありません。私は何かに取り組まなければならないかもしれません。テキストフィールドにアクションを設定せずにテキストを設定するにはどうすればよいですか?私はsetTextを使用しようとしました...私はそれが私がそれを行うことができ、それをクエリ文字列に追加できるとは思わないが、私はそれが検索ボタンをクリックしたときに設定することができます知っている。どんな助けや方向性も非常に高く評価されています。JavaFxテキストフィールドセットテキスト

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); 

ここにテキストフィールドがあります。ここでは、ユーザーがenterキーを押すとテキストが設定されます。ボタンがクリックされたときに上記のコンボボックスで選択されたクエリを追加するときに、アクションなしでテキストをどのように設定できるかを知りたいと思います。

  //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; 
     } 

    } 

答えて

0

それはあなたが求めているものは非常に明確ではないのですが、私はあなただけ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(); 
    } 
+0

ええ、それは私が望んでいたまさにです。どうもありがとうございます! – anshanno