我正在尝试执行我的第一个GUI应用程序,但不是一流的,而是分为不同的类。这是一个场景的例子:
及以下,代码行
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中,并为构造函数添加名称和质量" ?
答案 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);
}
}