Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 JTextField의 잘라내기, 복사하기, 붙여넣기 기능 구현 방법

JTextFieldJTextComponent 클래스의 하위 클래스로, 한 줄의 텍스트를 편집할 수 있도록 지원하는 Swing 컴포넌트입니다. JTextField에서 잘라내기, 복사하기, 붙여넣기 기능은 각각 cut(), copy(), paste() 메서드를 호출하는 것만으로 손쉽게 구현할 수 있습니다. 이 메서드들은 JTextField 클래스에 미리 정의되어 있어 별도의 로직 작성 없이 바로 사용할 수 있다는 장점이 있습니다.

메서드 구문

public void cut()
public void copy()
public void paste()

각 메서드의 역할

  • cut(): 선택된 텍스트를 삭제하면서 시스템 클립보드에 저장합니다.
  • copy(): 원본 텍스트는 그대로 유지한 채 선택 영역만 클립보드에 복제합니다.
  • paste(): 클립보드에 저장된 내용을 현재 커서 위치에 삽입합니다.

예제 코드

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

public class JTextFieldCutCopyPasteTest extends JFrame {
   private JTextField textField;
   private JButton cutButton, copyButton, pasteButton;

   public JTextFieldCutCopyPasteTest() {
      setTitle("JTextField CutCopyPaste Test");
      setLayout(new FlowLayout());
      textField = new JTextField(12);
      cutButton = new JButton("Cut");
      pasteButton = new JButton("Paste");
      copyButton = new JButton("Copy");

      cutButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            textField.cut();
         }
      });
      copyButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            textField.copy();
         }
      });
      pasteButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent le) {
            textField.paste();
         }
      });
      textField.addCaretListener(new CaretListener() {
         public void caretUpdate(CaretEvent ce) {
            System.out.println("All text: " + textField.getText());
            if (textField.getSelectedText() != null)
               System.out.println("Selected text: " + textField.getSelectedText());
            else
               System.out.println("Selected text: ");
         }
      });
      add(textField);
      add(cutButton);
      add(copyButton);
      add(pasteButton);
      setSize(375, 250);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }

   public static void main(String args[]) {
      new JTextFieldCutCopyPasteTest();
   }
}

코드 설명

위 예제는 Cut, Copy, Paste 세 개의 버튼을 만들고 각 버튼에 ActionListener를 등록하여, 클릭 시 해당 메서드가 실행되도록 구성했습니다. 또한 CaretListener를 텍스트 필드에 추가하면 커서 위치나 선택 영역이 변경될 때마다 전체 텍스트와 선택된 텍스트가 콘솔에 출력됩니다. 이를 통해 잘라내기, 복사하기, 붙여넣기 동작 전후의 상태 변화를 쉽게 확인할 수 있습니다.

실행 결과

Java에서 JTextField의 잘라내기, 복사하기, 붙여넣기 기능 구현 방법