2013년 8월 27일 화요일

불러오기와 저장만 되는 메모장.. [오라클교육오라클자바교육강의강좌,자바교육,ORACLEJAVA교육강의강좌]

불러오기와 저장밖에 안되지만 업그레이드 되는데로 다시 수정하도록 하겠습니다.


오라클자바커뮤니티에서 설립한  개발자실무교육6년차 오엔제이프로그래밍 실무교육센터
(신입사원채용무료교육, 오라클, SQL, 튜닝, 자바, 스프링, Ajax, jQuery, 안드로이드, 아이폰, 닷넷, C#, ASP.Net)   www.onjprogramming.co.kr




import java.awt.*;
import java.awt.event.*;
import java.io.*;

class Memo extends Frame implements ActionListener
{
TextArea textArea;//텍스트편집을 위한 TextArea
boolean change = false;//문서가 바뀌었는지 알기위한 boolean값

//메모장을 표시하는 윈도우를 설정하는 생성자
public Memo()
{
//프레임 이름지정
super("Memo");

//종료버튼에 이벤트걸기
addWindowListener(new EndWindow());

//메뉴바생성
MenuBar menu = new MenuBar();

//메뉴바의 메뉴구성
Menu file = new Menu("파일");
Menu edit = new Menu("편집(준비중)");
Menu form = new Menu("서식(준비중)");
Menu help = new Menu("도움말(준비중)");

//메뉴바에 메뉴 배치
menu.add(file);
menu.add(edit);
menu.add(form);
menu.add(form);
menu.add(help);

//파일메뉴의 세부메뉴 구성
MenuItem exit = new MenuItem("끝내기");
MenuItem save = new MenuItem("저장");
MenuItem open = new MenuItem("열기");
MenuItem newFile = new MenuItem("새로만들기(준비중)");
MenuItem otherSave = new MenuItem("다른이름으로저장(준비중)");
MenuItem setPage = new MenuItem("페이지설정(준비중)");
MenuItem print = new MenuItem("인쇄(준비중)");

//파일의 세부메뉴에 이벤트 걸기
exit.addActionListener(this);
save.addActionListener(this);
open.addActionListener(this);
newFile.addActionListener(this);

//파일메뉴의 세부메뉴 배치
file.add(newFile);
file.add(open);
file.add(save);
file.add(otherSave);
file.addSeparator();
file.add(setPage);
file.add(print);
file.addSeparator();
file.add(exit);

//편집메뉴의 세부메뉴 구성
MenuItem unDo = new MenuItem("실행취소");
MenuItem cut = new MenuItem("잘라내기");
MenuItem copy = new MenuItem("복사");
MenuItem paste = new MenuItem("붙여넣기");
MenuItem del = new MenuItem("삭제");
MenuItem search = new MenuItem("찾기");
MenuItem searchNext = new MenuItem("다음찾기");
MenuItem change = new MenuItem("바꾸기");
MenuItem move = new MenuItem("이동");
MenuItem selectAll = new MenuItem("모두선택");
MenuItem date = new MenuItem("시간/날짜");

//편집메뉴의 세부메뉴 배치
edit.add(unDo);
edit.addSeparator();
edit.add(cut);
edit.add(copy);
edit.add(paste);
edit.add(del);
edit.addSeparator();
edit.add(search);
edit.add(searchNext);
edit.add(change);
edit.add(move);
edit.addSeparator();
edit.add(selectAll);
edit.add(date);

//서식메뉴의 세부메뉴 배치
form.add(new MenuItem("자동줄바꿈"));
form.add(new MenuItem("글꼴"));

//도움말메뉴의 세부메뉴구성
MenuItem subHelp = new MenuItem("도움말항목");
MenuItem information = new MenuItem("메모장정보");

//도움말의 세부메뉴에 이벤트걸기
subHelp.addActionListener(this);
information.addActionListener(this);

//도움말메뉴의 세부메뉴 배치
help.add(subHelp);
help.addSeparator();
help.add(information);

//메뉴바를 프레임에 배치
setMenuBar(menu);

//텍스트에어리어배치
textArea = new TextArea();
add(textArea);

//텍스트에어리어에 이벤트걸기
//textArea.addActionListener(textArea);

//프레임사이즈설정 및 뷰설정
setSize(800, 600);
setVisible(true);

//메뉴아이템의 색깔 결정
/* newFile.setForeground(Color.darkGray);
otherSave.setForeground(Color.darkGray);
setPage.setForeground(Color.darkGray);
print.setForeground(Color.darkGray);

unDo.setForeground(Color.darkGray);
cut.setForeground(Color.darkGray);
copy.setForeground(Color.darkGray);
paste.setForeground(Color.darkGray);
del.setForeground(Color.darkGray);
search.setForeground(Color.darkGray);
searchNext.setForeground(Color.darkGray);
change.setForeground(Color.darkGray);
move.setForeground(Color.darkGray);
selectAll.setForeground(Color.darkGray);
date.setForeground(Color.darkGray);
*/ }

//각 메뉴에대한 이벤트처리
public void actionPerformed(ActionEvent event)
{
String command = event.getActionCommand();

if(command.equals("끝내기"))
{
System.exit(0);
}//끝내기
if(command.equals("저장"))
{
String text = textArea.getText();
FileDialog file = new FileDialog(this, "Save", 1);
file.show();
String path = file.getDirectory();
String fileName = file.getFile();

try
{
BufferedWriter out = new BufferedWriter(new FileWriter(path + fileName));
out.write(text, 0, text.length());
out.flush();
out.close();
}
catch(IOException e)
{
}
}//저장
if(command.equals("열기"))
{
FileDialog file = new FileDialog(this, "Open", 0);
file.show();
String path = file.getDirectory();
String fileName = file.getFile();
String text = "";

try
{
BufferedReader in = new BufferedReader(new FileReader(path + fileName));

while(in.ready())
{
text += in.readLine() + "\n";
}
in.close();
}
catch(IOException e)
{
}
textArea.append(text);
}//열기
if(command.equals("새로만들기"))
{
}
if(command.equals("test"))
{
System.out.println("되네");
}
if(command.equals("메모장정보"))
{
String massage = "";
new Popup("메모장정보", massage);
}
}

//메모장을 호출하는 메인메소드
public static void main(String[] args)
{
new Memo();
}
}

class Popup implements ActionListener
{
Frame frame;

public Popup()
{
}

public Popup(String title, String massage)
{
frame = new Frame(title);

frame.addWindowListener(new DisposeWindow());

//프레임에 들어갈 컴퍼넌트 생성
Label label = new Label(massage, 1);
Panel panel = new Panel();
Button exit = new Button("닫기");

//버튼에 이벤트걸기
exit.addActionListener(this);

//프레임에 컴퍼넌트 배치
frame.add(label, "Center");
frame.add(panel, "South");
panel.add(exit);
panel.setBounds(200, 100, 400, 150);
//프레임사이즈 설정 및 뷰 설정
frame.setSize(300, 200);
frame.setVisible(true);
}

public Frame get()
{
return frame;
}

public void actionPerformed(ActionEvent event)
{
frame.dispose();
}
}

class DisposeWindow extends WindowAdapter
{
public void windowClosing(WindowEvent event)
{
Popup pop = new Popup();
Frame frame = pop.get();
frame.dispose();
}
}

class EndWindow extends WindowAdapter
{
public void windowClosing(WindowEvent event)
{
System.exit(0);
}


댓글 없음:

댓글 쓰기