JAVA - 20
카테고리: java
* MVC 모델 만들어보기
Model
MovieModel.java - ( Model )
- MovieModel 클래스에는 private 접근 제어자로 BufferedWriter bw라는 인스턴스 변수가 선언되어 있습니다. 이 변수는 파일에 데이터를 쓰기 위한 BufferedWriter 객체를 저장합니다.
- addTitle(String title, List movieList) 메소드는 movieList에 영화 제목을 추가합니다. 이 메소드는 movieList의 add() 메소드를 사용하여 제목을 리스트에 추가합니다.
- delTitle(String title, List movieList) 메소드는 movieList에서 영화 제목을 제거합니다. 이 메소드는 movieList의 remove() 메소드를 사용하여 제목을 리스트에서 제거합니다.
- saveTitles(List movieList) 메소드는 movieList에 있는 영화 제목들을 파일에 저장합니다. 이 메소드는 “movieTitle2.txt”라는 파일을 생성하고, FileOutputStream, OutputStreamWriter, BufferedWriter를 사용하여 파일에 데이터를 쓸 준비를 합니다.
- saveTitles() 메소드는 movieList에서 영화 제목들을 하나씩 가져와서 BufferedWriter의 write() 메소드를 사용하여 파일에 쓰고, 각 제목 사이에는 개행 문자를 추가합니다.
- close() 메소드는 BufferedWriter를 닫습니다. 이 메소드는 예외가 발생할 경우에도 안전하게 BufferedWriter를 닫도록 try-catch 블록으로 처리합니다.
MovieModel 클래스는 영화 제목을 관리하고 파일에 저장하는 기능을 제공합니다. addTitle() 메소드를 사용하여 영화 제목을 추가하고, delTitle() 메소드를 사용하여 영화 제목을 제거할 수 있습니다. saveTitles() 메소드를 호출하면 현재 영화 제목들이 “movieTitle2.txt” 파일에 저장됩니다. close() 메소드는 파일 쓰기를 마치고 BufferedWriter를 닫습니다.
Controller
MovieController.java - ( Controller )
이 클래스는 MovieModel을 사용하여 영화 제목을 추가, 삭제하고 파일에 저장하는 역할을 합니다.
- MovieController 클래스에는 MovieModel 객체인 model이라는 인스턴스 변수가 선언되어 있습니다. 이 객체는 MovieModel 클래스의 기능을 사용하기 위해 생성됩니다.
- addTitle(String title, List movieList) 메소드는 영화 제목을 movieList에 추가합니다. 이 메소드는 try-catch 블록으로 감싸져 있으며, model 객체의 addTitle() 메소드를 호출하여 영화 제목을 추가합니다. 예외가 발생하면 에러 메시지가 출력됩니다.
- delTitle(String title, List movieList) 메소드는 영화 제목을 movieList에서 삭제합니다. model 객체의 delTitle() 메소드를 호출하여 영화 제목을 삭제합니다.
- saveTitles(List movieList) 메소드는 movieList에 있는 영화 제목들을 파일에 저장합니다. try-catch 블록으로 감싸져 있으며, model 객체의 saveTitles() 메소드를 호출하여 영화 제목들을 파일에 저장합니다. 예외가 발생하면 에러 메시지가 출력됩니다.
View
MovieWindow.java - ( View )
- MovieWindow 클래스는 JFrame을 상속받고 ActionListener를 구현합니다. 따라서 GUI 창을 생성하고 이벤트를 처리할 수 있습니다.
- resultMsg 변수는 화면에 출력되는 결과 메시지를 저장하는 문자열입니다.
- tMovieTitle은 사용자의 입력을 받는 JTextField로, 최대 30글자까지 입력할 수 있습니다.
- btnTitleInsert은 “영화제목 추가”라는 텍스트를 가진 JButton입니다. 이 버튼을 클릭하면 영화 제목이 추가됩니다.
- btnSave은 “영화제목 파일 저장”이라는 텍스트를 가진 JButton입니다. 이 버튼을 클릭하면 영화 제목들이 파일에 저장됩니다.
- movieList는 List 컴포넌트로, 영화 제목들을 순서대로 관리하는 역할을 합니다.
- controller는 MovieController 객체로, 영화 정보의 추가, 삭제, 저장을 처리하는 역할을 합니다.
- btnExit은 “종료”라는 텍스트를 가진 JButton으로, 이 버튼을 클릭하면 프로그램이 종료됩니다.
- MovieWindow 생성자에서는 GUI 화면을 구성합니다. Panel 객체를 생성하고 입력 필드, 버튼 등을 추가합니다. 화면의 상단에는 입력 필드와 버튼이, 중간에는 movieList가, 하단에는 종료 버튼이 배치됩니다. setBounds() 메소드를 사용하여 화면의 크기와 위치를 설정하고, setVisible(true)을 호출하여 화면을 표시합니다.
- actionPerformed(ActionEvent e) 메소드는 버튼 클릭 및 리스트 아이템 더블 클릭과 같은 이벤트를 처리합니다. 각 버튼의 기능을 구현하고 결과 메시지를 설정한 다음, JOptionPane.showMessageDialog()를 사용하여 결과 메시지를 팝업 창으로 표시합니다. 마지막으로, 종료 버튼을 클릭한 경우 System.exit()를 호출하여 프로그램을 종료합니다.
- main() 메소드에서는 MovieWindow 객체를 생성하여 GUI 화면을 실행합니다.
MovieWindow 클래스는 GUI를 통해 영화 정보를 추가, 삭제하고 파일에 저장할 수 있는 화면을 제공합니다. 컨트롤러 객체를 통해 실제 동작을 처리하며, 사용자와의 상호작용을 통해 결과 메시지를 표시합니다.

댓글 남기기