Day 25(9/6) 메모장 만들기

2016. 9. 6. 17:36Programming/Java

**오늘 배운 내용**

1. 메모장 메뉴 구현

2. txt 파일 저장/불러오기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.awt.MenuBar;
import java.awt.MenuItem;
 
class TextEditor extends Frame {
    TextArea ta;
    MenuBar mb;
    Menu menu;
    MenuItem miNew, miSaveAs, miOpen, miExit;// miOpen - FileReader, miSaveAs -
                                                // FileWriter
    String fileName;
 
    public TextEditor(String title) {
        super(title);
        ta = new TextArea();
        mb = new MenuBar();
        menu = new Menu("file");
        miNew = new MenuItem("new");
        miSaveAs = new MenuItem("open");
        miOpen = new MenuItem("save");
        miExit = new MenuItem("exit");
 
        ActionListener mh = new MenuHandler();
        miNew.addActionListener(new MenuHandler());
        miOpen.addActionListener(new MenuHandler());
        miSaveAs.addActionListener(new MenuHandler());
        miExit.addActionListener(new MenuHandler());
 
        menu.add(miNew);
        menu.add(miOpen);
        menu.add(miSaveAs);
        menu.addSeparator();
        menu.add(miExit);
        mb.add(menu);
 
        this.add(ta);
        this.setMenuBar(mb);
        this.setBounds(300200600500);
        this.setVisible(true);
    }
 
    public void fileOpen(String fileName) {
        // ch17input_output.L04SerialInput
        FileReader fr;
        BufferedReader br;
        StringWriter sw; // sw.writer(br.readline());
        // ta.setText(sw);
 
        try {
            fr = new FileReader(fileName);
            br = new BufferedReader(fr);
            sw = new StringWriter(); // fr => br => sw
            while (br.readLine() != null) { // 문제 해결
                sw.write(br.readLine() + "\n");
            }
            br.close();
            ta.setText(sw.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    public void saveAs(String fileName) {
        // ch17input_output.L03SerialOut
        FileWriter fw;
        BufferedWriter bw;
        try {
            fw = new FileWriter(fileName);
            bw = new BufferedWriter(fw);
            bw.write(ta.getText());
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    class MenuHandler implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            String emd = e.getActionCommand();
            if (emd.equals("new")) {
                ta.setText("");
            } else if (emd.equals("open")) {
                FileDialog fd = new FileDialog(TextEditor.this"file open");
                fd.setVisible(true);
                fileName = fd.getDirectory() + fd.getFile();
                fileOpen(fileName);
            } else if (emd.equals("save")) {
                FileDialog fd = new FileDialog(TextEditor.this"save as", FileDialog.SAVE);
                fd.setVisible(true);
                fileName = fd.getDirectory() + fd.getFile();
                saveAs(fileName);
 
            } else if (emd.equals("exit")) {
                System.exit(0);
            }
        }
    }
}
 
public class L03TextEditor {
    public static void main(String[] args) {
        new TextEditor("memo");
    }
}
cs


'Programming > Java' 카테고리의 다른 글

Day 27(9/8) TcpipServer  (0) 2016.09.09
Day 26(9/7) TcpipClient  (0) 2016.09.08
Day 24(9/5) 채팅창 만들기  (0) 2016.09.05
쉬운 예제  (0) 2016.09.04
JAVA 개념 간단 정리  (0) 2016.09.04