개인용 복습공간

[Java] 메모장 만들기 - 1 본문

Java

[Java] 메모장 만들기 - 1

taehwanis 2021. 5. 19. 23:56
 

 

메모장의 인터페이스와 간단한 기능을
만들어보려고 한다.

 

 

 

 

메모장

 

메모장의 인터페이스

메모장 인터페이스

간단하게 파일 메뉴만 만들어 보려고 한다.

 

 

 

메모장 코드

Notepad.java

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
import java.awt.BorderLayout;
import java.awt.event.WindowEvent;
 
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
 
public class Notepad extends JFrame {
    NoteActionListener nal = new NoteActionListener(this);
    
    JTextArea ta = new JTextArea();
    
    JMenu mfile = new JMenu("파일");
    JMenuBar mb = new JMenuBar();
    
    String filename;
    
    public Notepad(){
        this.setTitle("메모장");
        this.setBounds(5001001000700);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        String[] ScrItem = {"새파일","열기","저장","다른이름으로 저장""종료"};
        for(int i = 0; i<ScrItem.length; i++) {
            itemAdd(ScrItem[i], mfile);
        }
        
        mb.add(mfile);
        
        ta.setLineWrap(true);
        
        this.setJMenuBar(mb);
        this.add(new JScrollPane(ta), BorderLayout.CENTER);
        
        this.setVisible(true);
    }
    
    public void itemAdd(String title,JMenu m){
 
        JMenuItem item = new JMenuItem(title);
        m.add(item);
        item.addActionListener(nal);
 
        }
    
    public void windowClosing(WindowEvent we) {
        System.out.println("Closing");
        System.exit(0);
    }
    
    public void newFile(){    
        ta.setText("");
        this.setTitle("새파일");
    }
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new Notepad();
    }
 
}
cs

구성은 생성자, 리스너 추가를 위한 itemAdd메서드, 종료 버튼을 위한 windowClosing메서드,
새파일을 위한 newFile메서드 정도이다.

생성자에 간단하게 메뉴를 만들고 itemAdd는 메뉴 아이템 추가와 아이템마다 리스너를 추가했다.
그리고 종료를 위해 System.exit(0)를 windowClosing에 넣어주고 newFile()에 JTextArea초기화를
넣어주었다.

 

 

NoteActionListener.java

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
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class NoteActionListener implements ActionListener {
    Notepad frm;
    String cmd;
 
    public NoteActionListener(Notepad frm) {
        this.frm = frm;
    }
 
    @Override
    public void actionPerformed(ActionEvent ae) {
        cmd = ae.getActionCommand();
        switch(cmd) {
        case "새파일":
            frm.newFile();
            break;
        case "열기":
            
            break;
        case "저장":
            
            break;
        case "다른이름으로 저장":
            
            break;
        case "종료":
            frm.windowClosing(null);
            break;
        }
 
    }
}
cs

리스너는 독립리스너로 구성했다. Notepad에서 메서드를 받아 사용했다.

 

다음에는 열기와, 저장, 다른이름으로 저장을 해보려 한다.

Comments