[Java] 메모 노트(Memo Note) 프로그램
파워포인트 프레젠테이션(발표자료 - 최종보고서)
발표 스크립트
반갑습니다.(전체 인사)
저희는 ~(각자 소개)
저희는 메모 노트라는 프로그램을 만들었습니다.
지금부터 자바프로그래밍 팀 프로젝트 최종 발표를 시작하겠습니다.
먼저 목차를 보시면
크게 메모 노트에 대한 소개를 하고, 소스 구현 사항 및 실행에 대해 알아본 뒤,
결론을 말씀드리려고 합니다.
첫번째로 프로그램 개요를 설명 하겠습니다.
메모 노트는 많은 분들이 짐작하시는 것과 같이, 메모 프로그램입니다.
저희는 이 프로그램에 파일 입출력을 구현해 보았습니다.
요구사항은 간단합니다. 텍스트 편집 기능과 저장 기능, 파일을 열고 재편집하는 기능입니다.
추가적으로 사용자 편의성을 위해 단축키를 지원하도록 만들었습니다.
두 번째로 실제 프로그램 구현과 관련된 이야기를 하겠습니다.
프로그램의 구조는 아래와 같습니다. 노란색 표는 클래스를 다이어그램으로 나타낸 UML인데요,
하나의 거대한 Class (Note)를 구축해서, main 함수에서 객체를 생성합니다. Note 클래스 내부에는 각 메뉴들에 대한 이벤트 메소드들이 구현되어 있어 이를 적절히 불러들여 각 상황에 맞는 기능을 제공하게 됩니다. 즉, 프로그램은 하나의 클래스 안에 모두 구현되어 있습니다.
이번에는 소스를 소개하겠습니다.
프로그램의 소스는 먼저 선언부와 메뉴가 있습니다.
최상단에는 패키지(헤더) 파일을 가져왔고,
밑에는 Note 클래스의 멤버 변수를 초기화 하였습니다.
그리고 생성자 함수에서는 Jframe 기반 프로그램에 필요한 각 UI들을 설정하고, 단축키 또한 작동 가능하도록 붙여 놓았습니다.
대강의 틀이 완성된 셈이죠.
다음으로 액션 리스너들이 있습니다.
이벤트 처리를 위한 것들인데요, 메뉴에서 새 파일을 눌렀을 때 발생할 이벤트를 정의하고,
메뉴의 [열기] 기능을 선택했을 때 작동할 사항에 대해 적어 놓았습니다.
(자세한 설명 하기)
파일 저장을 위한 액션 리스너입니다.
저장 대화 상자를 출력하고, 화면에 파일에 대한 정보들을 뿌려 주는 역할을 합니다.
(자세한 설명?)
소스의 마지막 부분입니다.
프로그램 닫기, 프로그램 정보 확인, 화면 또는 각 기능에 해당하는 색상을 정의해 놓았습니다.
메인 함수에서는 Note 클래스로 하나의 객체를 생성해서 화면에 보이도록 합니다.
세 번째로 프로그램 실행 화면을 보여 드리겠습니다.
실제로 컴파일 된 프로그램의 캡쳐 화면입니다. 일반적으로 보실 수 있는 윈도우 프로그램인데요, 크게 두 가지의 메뉴가 보입니다.[엔터]
먼저 파일 메뉴에는 기본적인 파일 입출력 기능들에 접근할 수 있습니다.[엔터]
그리고 정보 메뉴 또한 하위에 있는 [정보]를 선택하면 기능이 작동하도록 설계했습니다.
그리고 너무도 당연한 기능이지만 텍스트를 입력할 수 있고, [엔터]
텍스트를 드래그해서 블록 지정할 수 있습니다.[엔터]
뿐만 아니라 [새 파일] 기능으로 작성 중이었던 화면을 초기화하는 것도 가능합니다.
[열기] 기능을 실행하면 파일을 여는 대화상자가 출력되는데요, 여기서 내가 원하는 텍스트 파일을 선택해서 열면, [엔터]
해당 파일의 내용이 출력되게 됩니다. 바로 편집 가능한 상태입니다.
[열기] 기능과 마찬가지로 [저장] 기능 또한 같은 처리 과정을 통해 작업 중인 자료를 원하는 위치에 저장할 수 있습니다.[엔터]
마지막으로 [정보]를 클릭하면 프로그램의 정보를 표시하게 됩니다.
이제 결론을 말씀드리겠습니다.
프로젝트를 끝내고 나서, 저희가 내린 결론과 개선 방향을 말씀드리겠습니다.[엔터]
최초에 SWING 기반 프로그램을 계획한 대로, JFrame을 기반으로 하는 작은 메모 노트 프로그램을 만드는 데 성공했습니다. 간단한 메뉴 구성과 파일 입출력까지 구현한 것이 특징이라고 볼 수 있습니다.[엔터]
차후 개선 방향입니다. 저희는 기존 메모 프로그램들처럼 블록 지정 후 글자에 속성을 부여하는 기능이 필요하다는 생각을 했습니다. 선택한 텍스트의 글꼴과 색상을 변경하는 등의 다양한 기능을 사용할 수 있을 거라고 생각합니다. 그리고 그림, 동영상 등 다양한 OLE객체를 이용할 수 있도록 구현한다면 좀 더 좋은 프로그램이 될 것 같습니다.
마지막으로, 참고 문헌과 사이트를 설명하겠습니다.
저희가 프로그램 제작을 하면서 참고한 도서와 웹 사이트는 다음과 같습니다.
이상으로 메모 노트 프로그램에 대한 발표를 마치겠습니다. 고맙습니다.
1. 개요
가. 소개
자바 프로그래밍 시간에 배운 지식을 이용하여 간단한 프로그램을 만든다. 과제 주제는 파일 입출력이 가능한 메모 노트 프로그램이다.
메모 노트(Memo Note) 프로그램 소개 |
노트 프로그램은 Windows 운영체제에 있는 메모장과 같은 기능을 하는 작은 프로그램. 주로 텍스트 파일(*.txt)을 편집하는 기본적인 GUI 프로그램이다. |
나. 선정 이유
평소에 사용하는 메모장 프로그램이 어떤 방법으로 만들어 졌고, 기능을 구현함에 있어 필요한 것들에 대해 알기 위해 선정했다.
비교적 간단한 기능을 가지고 있는 메모 프로그램 제작을 자바(Java)로 구현해 보면서 수업 시간에 배운 내용을 다시 한 번 학습하고 객체지향에 입각하여 프로그램을 설계하는 능력을 배양한다.
다. 요구 사항
- 사용자가 텍스트를 입력하고 편집할 수 있어야 한다.
- 작성한 내용을 텍스트 파일로 저장할 수 있어야 한다.
- 다른 텍스트 파일을 열고 편집할 수 있어야 한다.
- 각 기능들은 단축키를 통해 편하게 접근할 수 있어야 한다.
라. 배경 지식
자바 수업 시간, AWT를 접하고 인터페이스 디자인과 인터페이스 액션에 따른 이벤트 발생을 배우며 다양한 입, 출력 방법을 터득하게 되었다. 참고서적(JAVA 2 JDK 5.0)의 내용으로 Swing을 이용하게 됨으로 더욱 폭넓은 GUI프로그램을 할 수 있었다.이후 Java Platform(APT)를 통해 Scanner, Stream의 개념 및 해당 메소드를 이해하고 파일 입, 출력이 가능한 프로그램을 작성하게 됨.
2. 프로그램 구조
가. UML(Class Diagram)
나. 동작 방식
하나의 거대한 Class (Note)를 구축하고, main 함수에서 불러들여와 사용한다. Note 클래스 내부에는 각 메뉴들에 대한 이벤트 메소드들이 구현되어 있어 이를 적절히 불러들여 각 상황에 맞는 기능을 제공한다.
3. 소스 분석
4. 실행 화면
가. 기본 화면 및 메뉴 소개
나. 세부 기능
5. 결론 및 개선 방향
가. 결론
최초에 SWING 기반 프로그램을 계획했던 대로, JFrame을 기반으로 하는 작은 메모 노트 프로그램을 만드는 데 성공했다. 간단한 메뉴 구성과 파일 입출력 대화상자 호출까지 구현한 것이 이번 메모노트 프로그램의 특징이다.
나. 개선 방향
기존 메모 프로그램들처럼 블록 지정 후 글자에 속성을 부여하는 기능이 필요하다. 선택한 텍스트의 글꼴과 색상을 변경하는 등의 다양한 기능 구현을 위해 단축 메뉴(마우스 오른쪽 버튼을 누르면 나오는 메뉴)를 구현하는 것도 필요하다. 그리고 조금 더 욕심을 부린다면 워드 패드와 같이 이미지 삽입이나 다른 OLE(Object Linking and Embedding; 개체연결 및 삽입) 객체를 이용할 수 있게 하는 것까지 구현한다면 높은 품질의 메모 프로그램이 될 것이다.
6. 참고 문헌 및 사이트
가. 참고 문헌
- 시바타 보요, 「명쾌한 JAVA 입문」, 영진닷컴 (2008)
- 정의현, 「클릭하세요 JAVA2 SDK 5.0」, 대림 (2005)
- 최성진, 「자바GUI프로그래밍」 , 북스힐 (2001)
나. 참고 사이트
- http://java.sun.com/j2se/1.5.0/docs/api/ (Sun Microsystems)
- http://blog.sdnkorea.com/blog/ (Sun Developer Network 공식 블로그)
'프로그래밍 실습 > 자바(Java)' 카테고리의 다른 글
[Java] 로또 복권 시뮬레이션 게임 만들기 (4) | 2011.01.02 |
---|---|
[Java] High-Low 게임 만들기(AWT 사용) (0) | 2011.01.02 |
[Java] 두 개의 주사위를 던진다. 각 주사위는 여섯 개의 면이 있으며, 각 면에는 1,2,3,4,5,6개의 점이 있다. 주사위가 멈추면 두 주사위 윗면에 있는 점의 개수를 더한다. 게임을 100번 시행했을 때, 승률은 어떻게 되는가? 그 과정들을 보이고 승률을 %로 나타내어라 (0) | 2011.01.02 |
[Java] Integer 클래스의 메소드를 조사, 예제 프로그램 작성하기 (0) | 2011.01.02 |
Math 클래스의 메소드들을 조사하고 다음 메소드 5개에 대하여 예제 프로그램을 작성하고 결과를 보여라. (0) | 2010.05.13 |