Java - 将TextField中的值添加到另一个类的对象构造函数中

时间:2017-04-01 12:36:07

标签: java javafx

我正在尝试执行我的第一个GUI应用程序,但不是一流的,而是分为不同的类。这是一个场景的例子: and below, lines of code

及以下,代码行

Button backToMainSceneButton = new Button("Return");
backToMainSceneButton.setOnAction(event -> primaryStage.setScene(scene));

Label dodajZwierzeLabel = new Label("Choose type of animal:");
ChoiceBox animalChoiceBox = new ChoiceBox();
animalChoiceBox.getItems().addAll("Dog", "Cat", "Hamster", "Degu");
HBox nameHbox = new HBox(10);
HBox massHbox = new HBox(10);
HBox healthHbox = new HBox(10);

Label nameLabel = new Label("Name: ");
TextField nameTextField = new TextField();
nameHbox.getChildren().addAll(nameLabel, nameTextField);

我想把动物的名字,它的质量,然后点击"添加"它下方的按钮会创建新对象' Animal'来自textfield的名称和质量。在一堂课中它很简单,但我想尝试做更多的专业教育。 java app。

我有另一个班级" DatebaseOfAnimals"与动物的arraylist。那么我该如何实现以下内容:  "将名称和质量放到textfield" - > "点击'添加'按钮" - > "新对象Animal正在创建并添加到另一个类中的arraylist中,并为构造函数添加名称和质量" ?

1 个答案:

答案 0 :(得分:0)

始终打算发布mcve

import java.util.ArrayList;
import java.util.List;

public class Main {

    //i assume that this initialization of DatabaseOfAnimals is 
    //done in the GUI class constructor. (remove static modifier) 
    static DatabaseOfAnimals db = new DatabaseOfAnimals();

    public static void main(String[] args) {

        addAnimal("Sancho", 8);//this should be executed by Add button
    }

    //remove static modifier 
    static void addAnimal(String name, float mass) {

        db.addAnimal(new Animal(name, mass));
    }
}

class Animal{
    Animal(String name, float mass){/*do something*/}
}

class DatabaseOfAnimals{

    List<Animal> list;

    public DatabaseOfAnimals() {
        list = new ArrayList<>();
    }

    void addAnimal(Animal animal) {
        list.add(animal);
    }
}