s5unnyjjj's LOG
[2019 JAVA 프로젝트] JAVA GUI를 이용한 온라인 영화 예매 본문
프로젝트 이름 : JAVA GUI를 이용한 온라인 영화 예매
참여 기간 : 2019.10~2019.11
참여 인원 : 1명(홀로 진행)
목차는 아래와 같다.
1. 구현 기능
2. 상세 기능
3. 클래스
4. 오류 처리
1. 구현 기능
- GUI를 이용한 구현
- Java.io 패키지를 이용하여 텍스트 파일에 회원가입한 회원들 정보 저장
- 로그인 하게 되면 메인화면의 버튼 일부 변경
- 영화 정보는 로그인 하지 않아도 실행 가능하지만, 예매는 로그인 후 예매
- 각 영화의 개봉날짜에 따라 날짜와 시간을 다르게 적용
- 간식과 결제 방법을 구분하여 적용
- 선택한 인원 수에 해당하는 좌석 선택
2. 상세 기능메인 화면
- 메인 화면
- 예매 : 영화 예매(단, 로그인 후에만 가능)
- 영화 : 나열된 각 영화 정보 확인
- 로그인
- 회원가입
- 회원가입
- 성명 : 최대 3글자
- 생년월일 : 최대 6글자
- 아이디 : 최대 10글자
- 비밀번호 : 최대 10글자
- 비밀번호 확인 : 위에 작성한 비밀번호와 다를 시, 오류 발생
- 회원가입이 완료되면 알림 메시지 후, 메인 화면으로 이동
- 회원가입 완료와 동시에 회원명단.txt 파일에 회원 정보 저장
- 회원가입시 작성하는 두 번의 비밀번호가 다를 시, 에러 메시지 발생
- 로그인 전까지는 회원가입 무한 반복 가능
- 로그인
- 회원가입한 회원들의 아이디 중, 해당 아이디와 비밀번호 입력
- 부정확한 정보 입력 시, 오류 메시지 발생 (아이디 틀릴경우랑 비밀번호 틀릴경우랑 오류메시지 다름)
- 정확한 정보 입력 시, 로그인 완료 메시지 발생
- 로그인 후, 메일화면
- 로그인 후, 좌측 하단에 있던 '로그인'버튼이 '내 정보' 버튼으로 변경
- 로그인 후, 우측 하단에 있던 '회원가입'버튼이 '로그아웃' 버튼으로 변경
- 영화
- 원하는 영화 선택
- 최상위에 있는 '선택해주세요'를 누른 후, 다음 화면으로 이동하게 되면 에러 메시지 발생
- 'Be Always Happy' 영화 정보 나열
- 영화 개봉일로부터 3일 후까지만 예매 가능
- 하단의 영화 개봉 일과 기본 정보에 있는 상영 시간에 따라 예매 정보가 달라짐
- 'Do Your Best' 영화 정보 나열
- 영화 개봉일로부터 3일 후 까지만 예매 가능
- 하단의 영화 개봉 일과 기본 정보에 있는 상영 시간에 따라 예매 정보가 달라짐
- 'In Your Time Zone' 영화 정보 나열
- 영화 개봉일로부터 3일 후 까지만 예매 가능
- 하단의 영화 개봉일과 기본 정보에 있는 상영 시간에 따라 예매 정보가 달라짐
- 예매
- 영화에 따라 날짜와 시간 정보가 다르기에, 영화 제목 선택 전까지는 영화 날짜와 영화 시간에 대한 정보가 뜨지 않도록 설정
- 영화를 선택하지 않거나 최상위에 있는 '선택해주세요'를 선택하오 이동하게 되면 에러 메시지 발생
- 'Be Always Happy' 영화 개봉일이 11월 30일이므로 11월 30일, 12월 01일, 12월 02일까지만 예매 기능 설정
- 영화 관람 수는 동일하게 최대 10명으로 설정
- 앞에서 설정한 영화 관람 수 만큼 좌석 선택 가능하도록 설정
- 해당 좌석 다시 클릭 시, 취소되도록 설정하였으며 이후 다른 좌석 선택 선택 가능
- 원하는 종류의 간식 선택 가능
- '선택안함'을 선택하면 추가 금액은 발생하지 않음
- 선택하지않거나 최상위에 있는 '선택해주세요'를 선택하고 이동하게 되면 에러 메시지 발생
- 앞에서 선택한 영화 제목과 영화 날짜, 영화 시간, 좌석, 구매한 간식 그리고 총 금액 확인 기능 구현
- 선택한 좌석은 선택한 순서에 상관없이 알파벳과 숫자 순으로 나열하는 기능 구현
- 선택하지 않거나 최상위에 있는 '선택해주세요'를 선택하고 이동하게 되면 에러 메시지 발생
- 결제 방법 선택 후, PAY 버튼 누르면 해당 방법으로 결제 완료 되도록 기능 구현
- 내 정보
- 회원가입 시에 작성한 성명과 생년월일, 아이디, 비밀번호 표시
3. 클래스
4. 오류 처리
- 로그인 하게 되면, 파일로부터 한 줄씩 읽어 온 문자열을 String 배열에 저장한 후, 아이디가 저장된 맨 앞의 방을 기준으로 비교하여 그에 해당하는 메시지 발생
- 로그인 상태를 나타내는 변수 opt_login이 true이면 로그인 되었다는 의미로, 예매 화면으로 이동
- opt_login이 false이면 로그인상태가 아니기에 Message 클래스를 통해 에러 메시지 발생
- Choice 객체로 생성된 CH_movie, CH_date, CH_time, CH_person에서 getSelectedIndex()를 통해 인덱스값을 얻음
- 얻어온 인덱스 값이 0일 경우 즉, 선택되지 않았을 경우 Message 클래스를 통해 에러 메시지 발생
>> 위 내용은 필자가 공부하여 직접 정리한 내용이며, 위 그림 역시 직접 편집한 그림이므로 워터마크 "s5unnyjjj"를 삽입하였음을 알려드립니다.
>> 부족한 점이 많을 수 있기에 잘못된 내용이나 궁금한 사항이 있으면 댓글 달아주시기 바랍니다.
>> 필자가 직접 구현한 코드를 추후 업로드 예정입니다.
>> 긴 글 읽어주셔서 감사합니다.
반응형
Comments