코딩/JAVA

Java 데이터 다른 클래스에서도 사용하는법, 페이지간 데이터 이동

LoGinShin 2023. 11. 24. 00:49
반응형

 
 


 
이 내용은 사실 다른 클래스를 호출해 메서드를 사용하는 게 전부입니다.
1번 클래스에서는 다른 컨트롤레어소 데이터를 사용할 수 있도록 getter메서드를 제공해 주는 것이고
2번 클래스에서는 1번 클래스를 생성하여 getter메서드로 데이터를 가지고 오는 것이다.
 
 
 
1. 데이터를 가지고 있는 컨트롤에서 ObservableList 객체를 생성하고 데이터를 추가합니다.

public class BookListController {
    private ObservableList<Book> bookList = FXCollections.observableArrayList();

    public void initialize() {
        // 책 데이터를 가져와서 bookList에 추가하는 코드 작성
        // 예시로 book1, book2, book3을 추가한다고 가정
        bookList.addAll(book1, book2, book3);
    }

    // 다른 컨트롤러에서 사용할 수 있도록 getter 메서드 제공
    public ObservableList<Book> getBookList() {
        return bookList;
    }
}

 (javaFx프로젝트라 위와같은 initialize()메서드를 생성해서 만들었습니다, 사용하려면 Initializable interface를 implements 해줘야합니다)


 
 
 
2. 다른 컨트롤러에서 데이터를 사용할 때, 해당 컨트롤러의 인스턴스를 얻어온 후 getBookList() 메서드를 호출하여 데이터 리스트를 가져옵니다.

public class OtherController {
    private BookListController bookListController;

    public void setBookListController(BookListController bookListController) {
        this.bookListController = bookListController;
    }

    public void someMethod() {
        ObservableList<Book> bookList = bookListController.getBookList();
        // bookList를 사용하여 원하는 작업 수행
    }
}

 
 
 
위의 예시에서 BookListController는 책 데이터를 가지고 있는 컨트롤러이고, OtherController는 데이터를 사용할 다른 컨트롤러입니다.
setBookListController() 메서드를 통해 OtherController에서 BookListController의 인스턴스를 전달하여 연결합니다. 그리고  someMethod()에서 bookList를 통해 책 데이터 리스트에 접근하여 필요한 작업을 수행할 수 있습니다.

728x90
반응형