2014-03-29 28 views
0

我在每一行都有一个GridPane这里有一个包含标签和文本框的Hbox,我希望获得用户在文本框中写入的文本,并且还可以获取写在标签中的文本我这样做,请帮助我谢谢。获得GridPane的支持者javafx

+0

欢迎来到StackOverflow。当您提出问题时,请包含您要求帮助的问题的相关代码。另外,在问这里之前,确保你已经对这个问题做了一些研究,并且可以证明你已经努力自己先解决它。有关更多信息,请参阅http://stackoverflow.com/questions/how-to-ask。 – forgivenson

回答

0
import javafx.application.Application; 
import javafx.beans.value.ChangeListener; 
import javafx.beans.value.ObservableValue; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.Label; 
import javafx.scene.control.TextField; 
import javafx.scene.layout.GridPane; 
import javafx.scene.layout.HBox; 
import javafx.scene.layout.StackPane; 
import javafx.stage.Stage; 

/** 
* 
* @author reegan 
*/ 
public class GridPaneStackOverFlow extends Application { 

    @Override 
    public void start(Stage primaryStage) { 

     GridPane gp = new GridPane(); 
     gp.add(createNode("Stack"), 0, 0); 
     gp.add(createNode("Over"),0,1); 
     gp.add(createNode("Flow"), 0, 2); 
     StackPane root = new StackPane(); 
     root.getChildren().add(gp); 

     Scene scene = new Scene(root, 300, 250); 

     primaryStage.setTitle("Hello World!"); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 


    public static void main(String[] args) { 
     launch(args); 
    } 

    public HBox createNode(String label) { 
     HBox box = new HBox(20); 
     final Label l = new Label(label); 
     TextField field = new TextField(); 
     field.textProperty().addListener(new ChangeListener<String>() { 
      @Override 
      public void changed(ObservableValue<? extends String> ov, String t, String t1) { 
       System.out.println(l.getText()+ " : " +t); 
      } 
     }); 
     box.getChildren().addAll(l,field); 
     return box; 

    } 

}