오라클자바커뮤니티에서 설립한 개발자실무교육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);
}
}
댓글 없음:
댓글 쓰기