Я работаю над Javafx
проектом в формате Model View Controller
. В настоящее время в модели у меня есть 3 класса: школьный класс, основной класс и ученический класс. В школьном классе есть список основных предметов, а в основном классе - список учащихся. Список студентов читается в majorName.txt
файлах.
Представление организует и распечатывает списки специальностей и студентов в текстовые поля. Один из обязательных методов - это возможность сохранять любые изменения, сделанные в текстовых полях (так как при использовании приложения можно изменить имя, добавить имя, удалить имя и т. Д.) После нажатия кнопки сохранения. Контроллер не должен сохранять и обновлять файлы. Вместо этого он должен вызвать метод из школьного класса, чтобы сделать сохранение.
main.java
package application;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
// Load the FXML document (we created with SceneBuilder)
FXMLLoader loader = new FXMLLoader();
loader.setLocation( Main.class.getResource("../Main.fxml") );
// Load the layout from the FXML and add it to the scene
AnchorPane layout = (AnchorPane) loader.load();
Scene scene = new Scene( layout );
// Set the scene to stage and show the stage to the user
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
School.Java
public class School {
private String name;
private ArrayList<Major> majors;
public School(String name) {
this.name = name;
this.Major = new ArrayList<Major>();
}
public School loadData( ) {
//reading .txt files to create instances of majors and students
}
public void Save( String houseName, String roster ) {
//writing .txt files with changes from application textfields
}
maincontroller.java
public class MainController implements EventHandler {
@FXML private Text schoolName;
@FXML private Text firstHouseName;
@FXML private Text firstHouseStudent;
//ect... LIST of all FXML nodes
public void initialize( URL location, ResourceBundle resources) {
//Create the school instance and call School.loadData() reading data to create major and students.
School OCC = new School( "OCC");
OCC.loadData();
public void handle(Event arg0) {
// TODO Auto-generated method stub
String rosterOne = firstMajorStudent.getText();
String nameOne = firstMajorName.getText();
//OCC Cannot be resolved
OCC.save(nameOne, rosterOne);
Моя проблема связана с последней строкой кода, вызывающей метод Save from the school. Нужно ли передавать объект OCC
методу handle?.