본문 바로가기

자바(java)

텍스트 에디터: 텍스트 파일을 편집하고 저장하는 기능을 갖춘 텍스트 에디터를 개발합니다.

반응형

텍스트 에디터: 자바 기반 개발


1. 내용 설명


이 프로그램은 자바를 사용하여 개발된 기본적인 텍스트 에디터입니다. 사용자는 이 에디터를 통해 텍스트 파일을 열고, 편집하며, 저장할 수 있습니다. 이 텍스트 에디터는 Swing을 이용한 그래픽 사용자 인터페이스(GUI)를 제공하며, 파일 열기, 편집, 저장 등의 기본적인 기능을 포함합니다.

2. 프로그램 간 사용 함수 설명


openFile(): 파일 선택기를 통해 사용자가 파일을 선택하면, 해당 파일을 열고 내용을 편집기에 표시합니다.
saveFile(): 현재 편집 중인 텍스트 내용을 파일로 저장합니다.
createAndShowGUI(): 텍스트 에디터의 사용자 인터페이스를 생성하고 표시합니다.
main(String[] args): 메인 메소드로, 프로그램의 진입점입니다.

 

 

3. 코딩 내용

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class TextEditor {
    private JTextArea textArea;
    private JFrame frame;

    public TextEditor() {
        createAndShowGUI();
    }

    private void createAndShowGUI() {
        frame = new JFrame("Text Editor");
        textArea = new JTextArea(20, 40);
        frame.add(new JScrollPane(textArea), BorderLayout.CENTER);

        JMenuBar menuBar = new JMenuBar();
        JMenu fileMenu = new JMenu("File");
        JMenuItem openItem = new JMenuItem("Open");
        JMenuItem saveItem = new JMenuItem("Save");

        openItem.addActionListener(e -> openFile());
        saveItem.addActionListener(e -> saveFile());

        fileMenu.add(openItem);
        fileMenu.add(saveItem);
        menuBar.add(fileMenu);
        frame.setJMenuBar(menuBar);

        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    private void openFile() {
        JFileChooser fileChooser = new JFileChooser();
        if (fileChooser.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) {
            File file = fileChooser.getSelectedFile();
            try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
                textArea.read(reader, null);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private void saveFile() {
        JFileChooser fileChooser = new JFileChooser();
        if (fileChooser.showSaveDialog(frame) == JFileChooser.APPROVE_OPTION) {
            File file = fileChooser.getSelectedFile();
            try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
                textArea.write(writer);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(TextEditor::new);
    }
}

 


4. 전문용어


Swing: 자바의 GUI 위젯 툴킷입니다.
JFrame: Swing의 기본적인 윈도우를 생성하는 클래스입니다.
JTextArea: 여러 줄의 텍스트를 편집할 수 있는 컴포넌트입니다.
JScrollPane: 컴포넌트에 스크롤 기능을 추가하는 클래스입니다.
JMenuBar, JMenu, JMenuItem: 메뉴 바와 메뉴 항목을 만드는 데 사용되는 클래스들입니다.
JFileChooser: 파일 선택기 대화 상자를 생성하는 클래스입니다.
BufferedReader, BufferedWriter: 텍스트 파일을 읽고 쓰는 데 사용되는 클래스들입니다.
ActionListener: 사용자의 액션(예: 버튼 클릭)에 대한 처리를 하는 인터페이스입니다.
IOException: 입출력 관련 예외 처리를 위한 클래스입니다.
5. 라이브러리 추가 및 실행 방법
이 프로그램은 자바 표준 라이브러리의 Swing 컴포넌트를 사용하므로, 별도의 라이브러리 추가가 필요하지 않습니다. 자바 개발 키트(JDK)가 설치되어 있으면 컴파일과 실행이 가능합니다.

 


컴파일 방법:
javac TextEditor.java


실행 방법:
java TextEditor

반응형