我正在开发一个简单的GUI,它使用TextField
s获取名字,姓氏,电话等。我有“新建”,“更新”和“删除”等按钮,因此您可以对输入的数据执行操作。
我还是JavaFX的新手,所以我对我的GUI设计方法没有百分之百的信心,并担心它可能与我有关无法从给定的内容中检索输入的值TextField
即可。我确信getText()
正在运行,因为如果我在TextField
中设置文字,然后使用getText()
,我可以在按下按钮后检索TextField
中的数据。似乎正在发生的是处理程序方法返回TextField
的默认值。我认为这是因为确认“New Contact Created”上面有一个空行。
我做了什么:
TextField
的{{1}}检索了特定的VBox
。Node
投射到Node
TextField
TextField
如果有助于了解我的设计:
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
。VBox
中创建了Button
,在一个返回整个的方法中
HBox中。HBox
的方法中创建了GridPane
。就在这
方法我调用返回GridPane
和VBox
s的方法
带有TextField
s(和处理程序方法)的HBox
Button
方法。答案 0 :(得分:0)
由于您的问题非常广泛且难以理解,我将为您提供有关如何使用Hashmap执行此操作的另一个想法,并且很容易传递以及确切知道您使用的文本字段除了{{ 1}}。注意这将需要更多编码,但如果他们查看您的代码,其他人也会更容易理解。
addTextFieldVBox().getChildren().get(0);