JAVA 메모장 예제

728x90
간단한 메모장 예제 파일입니다.
입력창과 복사 , 붙여넣기, 잘라내기, 삭제 버튼이 들어 있습니다.




package pack1;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Memojang extends JFrame implements ActionListener{
       JButton btnCopy = new JButton("복사");
       JButton btnPaste = new JButton("붙여넣기");
       JButton btnCut = new JButton("잘라내기");
       JButton btnDel = new JButton("삭제");
       
       JTextArea txtMemo = new JTextArea("", 10, 30);
       String copyText;
       
       public Memojang() {
              super("제목 없음 - 메모장");
              
              initLayout();
              
              setBounds(200,200,400,320);
              setVisible(true);
              
              addWindowListener((WindowListener) new WindowAdapter() {
                     @Override
                     public void windowClosing(WindowEvent arg0) {
                           int re = JOptionPane.showConfirmDialog(Memojang.this "정말 종료할까요?" , "종료", JOptionPane.YES_NO_OPTION);
                           if(re == JOptionPane.YES_OPTION)
                                  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                            else
                                   setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
                     }
              });
       }
       
       private void initLayout() {
              JPanel pn = new JPanel();
              pn.add(btnCopy);
              pn.add(btnPaste);
              pn.add(btnCut);
              pn.add(btnDel);
                           
              add("South", pn);
              JScrollPane ScrollPane = new JScrollPane(txtMemo);
              add("Center", txtMemo);
              
              btnCopy.addActionListener(this);
              btnPaste.addActionListener(this);
              btnCut.addActionListener(this);
              btnDel.addActionListener(this);
              
              
       }
       
       @Override
       public void actionPerformed(ActionEvent e) {
              if(e.getSource() == btnCopy) { // 복사 작업
                     copyText = txtMemo.getSelectedText();
              }else if(e.getSource() == btnPaste) { // 붙여넣기
                     int position = txtMemo.getCaretPosition();
                     txtMemo.insert(copyText, position);
              }else if(e.getSource() == btnCut) {
                     copyText = txtMemo.getSelectedText();
                     
                     int start = txtMemo.getSelectionStart();
                     int end = txtMemo.getSelectionEnd();
                     txtMemo.replaceRange("", start, end);
              }else if(e.getSource() == btnDel) { //삭제
                     int start = txtMemo.getSelectionStart();
                     int end = txtMemo.getSelectionEnd();
                     txtMemo.replaceRange("",start,end);
              }
              
              txtMemo.requestFocus();
              
       }
       
       public static void main(String[] args) {
              new Memojang();
       }
}





본 포스팅은 IT 교육기관인 KIC 캠퍼스의 지원을 받은 리포트입니다.
본문은 '남궁성, JAVA의 정석 3rd Edition' 교재를 공부하면서 주요 내용을 요약하고 있습니다.
혹시 잘못되거나 문제 소지시 댓글 남겨주시면 조치하겠습니다.


728x90

'DEV' 카테고리의 다른 글

JAVA 배열(Array) 정리 #1  (0) 2018.01.13
JAVA 조건문과 반복문  (0) 2018.01.10
JAVA 연산자 요약  (0) 2018.01.09
JAVA 상하좌우 키보드로 이미지를 이동시키기  (0) 2018.01.09
JAVA 미디어(WAV) 재생 예제  (2) 2018.01.09
JAVA 변수에 관해  (0) 2018.01.09