본문 바로가기

자바

AWT를 이용한 간단한 메모장 작성

package pack.awt;


import java.awt.Button;

import java.awt.Frame;

import java.awt.Menu;

import java.awt.MenuBar;

import java.awt.MenuItem;

import java.awt.MenuShortcut;

import java.awt.Panel;

import java.awt.TextArea;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;


public class Memojang extends Frame implements ActionListener{

private static final long serialVersionUID = 1L;

Button btnCopy = new Button("copy");

Button btnPaste = new Button("paste");

Button btnCut = new Button("cut");

Button btnDel = new Button("del");

TextArea txtMemo = new TextArea("", 10, 40); // TextArea(초기값,행,열)

Panel pn = new Panel();

String copyText;

//메뉴

MenuItem mnuNew, mnuSave, mnuOpen, mnuExit;

MenuItem mnuCopy, mnuPaste, mnuCut, mnuDel;

MenuItem mnuAbout, mnuEtc1, mnuEtc2;


public Memojang() {

super("메모장");

setBounds(200, 200, 400, 300);

setVisible(true);

addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

initLayout();

menuLayout();

}


private void menuLayout() {

MenuBar menuBar = new MenuBar(); //메뉴바

Menu mnuFile = new Menu("File"); //주메뉴

mnuNew = new MenuItem("New"); //부메뉴..

mnuOpen = new MenuItem("Open...");

mnuSave = new MenuItem("Save...");

mnuExit = new MenuItem("Exit");

mnuFile.add(mnuNew);

mnuFile.add(mnuOpen);

mnuFile.add(mnuSave);

mnuFile.addSeparator(); //구분선

mnuFile.add(mnuExit);

Menu mnuEdit = new Menu("Edit"); //주메뉴

mnuCopy = new MenuItem("Copy", new MenuShortcut(KeyEvent.VK_C)); //부메뉴.. MenuShortcut(단축키)

mnuPaste = new MenuItem("Paste", new MenuShortcut(KeyEvent.VK_V));

mnuCut = new MenuItem("Cut", new MenuShortcut(KeyEvent.VK_X));

mnuDel = new MenuItem("Del", new MenuShortcut(KeyEvent.VK_DELETE));

mnuEdit.add(mnuCopy);

mnuEdit.add(mnuPaste);

mnuEdit.add(mnuCut);

mnuEdit.add(mnuDel);

Menu mnuHelp = new Menu("Help");

mnuAbout = new MenuItem("Memo About...");

mnuHelp.add(mnuAbout);

Menu mnuEtc = new Menu("Etc");

mnuEtc1 = new MenuItem("calc");

mnuEtc2 = new MenuItem("free");

mnuEtc.add(mnuEtc1);

mnuEtc.add(mnuEtc2);

menuBar.add(mnuFile); //메뉴바에 주메뉴 등록

menuBar.add(mnuEdit); //메뉴바에 주메뉴 등록

menuBar.add(mnuHelp); //메뉴바에 주메뉴 등록

menuBar.add(mnuEtc); //메뉴바에 주메뉴 등록

this.setMenuBar(menuBar); //frame에 메뉴바 등록

}


private void initLayout() {

pn.add(btnCopy);

pn.add(btnPaste);

pn.add(btnCut);

pn.add(btnDel);

this.add("South", pn);

this.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); // insert(붙여넣을문자, 위치)

}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();

}

}



'자바' 카테고리의 다른 글

Swing 예제  (0) 2014.02.27
AWT 레이아웃의 종류  (0) 2014.02.25
동기화 synchronized  (0) 2014.02.25
쓰레드로 만든 시계  (0) 2014.02.24
내부클래스  (0) 2014.02.21