从Node获取TextField,从Textfield获取带有JavaFX --NO Scenebuilder的getText

时间:2018-03-21 04:18:44

标签: javafx textfield gettext vbox hbox

我正在开发一个简单的GUI,它使用TextField s获取名字,姓氏,电话等。我有“新建”,“更新”和“删除”等按钮,因此您可以对输入的数据执行操作。

我还是JavaFX的新手,所以我对我的GUI设计方法没有百分之百的信心,并担心它可能与我有关无法从给定的内容中检索输入的值TextField 即可。我确信getText()正在运行,因为如果我在TextField中设置文字,然后使用getText(),我可以在按下按钮后检索TextField中的数据。似乎正在发生的是处理程序方法返回TextField的默认值。我认为这是因为确认“New Contact Created”上面有一个空行。

我做了什么:

  1. TextField的{​​{1}}检索了特定的VBox
  2. Node投射到Node
  3. 制作了一个处理程序方法,用于确定按下了哪个按钮。
  4. 尝试从TextField
  5. 获取输入的文字
    TextField

    如果有助于了解我的设计:

    1. 我将Node firstName = addTextFieldVBox().getChildren().get(0); TextField first = (TextField)firstName; Button newContact = new Button ("New"); EventHandler handle = new EventHandler() { @Override public void handle(Event event) { //determine which button is being pressed //get the button's text for switch case Button button = ((Button)event.getSource()); String currentButton = button.getText(); switch(currentButton) { case "New": System.out.println(first.getText()); System.out.println("New Contact Created."); break; default: System.out.println("Error with buttons"); } } }; newContact.setOnAction(handle); 放在TextField中,返回整个方法 VBox
    2. 我在VBox中创建了Button,在一个返回整个的方法中 HBox中。
    3. 我在一个返回HBox的方法中创建了GridPane。就在这 方法我调用返回GridPaneVBox s的方法 带有TextField s(和处理程序方法)的HBox
    4. 在start方法中调用Button方法。

1 个答案:

答案 0 :(得分:0)

由于您的问题非常广泛且难以理解,我将为您提供有关如何使用Hashmap执行此操作的另一个想法,并且很容易传递以及确切知道您使用的文本字段除了{{ 1}}。注意这将需要更多编码,但如果他们查看您的代码,其他人也会更容易理解。

addTextFieldVBox().getChildren().get(0);