Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 JTextArea의 잘라내기, 복사 및 붙여넣기 기능을 비활성화하려면 어떻게 해야 합니까?


JTextArea JTextComponent 의 하위 클래스입니다. 클래스이며 여러 줄 텍스트 구성요소입니다. 텍스트를 표시하거나 사용자가 텍스트를 입력할 수 있도록 합니다. JTextArea는 CaretListener 를 생성할 수 있습니다. JTextArea의 기능을 구현하려고 할 때 인터페이스. 기본적으로 JTextArea 클래스는 잘라내기, 복사 및 붙여넣기를 지원할 수 있습니다. 기능을 비활성화하거나 해제할 수도 있습니다. 잘라내기, 복사 및 붙여넣기 기능 getInputMap().put() 사용 JTextArea 메소드 수업. KeyStroke.getKeyStroke("control X") 를 사용할 수 있습니다. 자르기의 경우 KeyStroke.getKeyStroke("control C") 복사 및 KeyStroke.getKeyStroke("control V") 붙여넣기용입니다.

예시.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JTextAreaCutCopyPasteDisableTest extends JFrame {
   private JTextArea textArea;
   private JButton cut, copy, paste;
   private JPanel panel;
   public JTextAreaCutCopyPasteDisableTest() {
      setTitle("JTextAreaCutCopyPasteDisable Test");
      setLayout(new BorderLayout());
      panel = new JPanel();
      textArea = new JTextArea();
      cut = new JButton("Cut");
      cut.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            textArea.getInputMap().put(KeyStroke.getKeyStroke("control X"), "none");// disable cut 
         }
      });
      panel.add(cut);
      copy = new JButton("Copy");
      copy.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            textArea.getInputMap().put(KeyStroke.getKeyStroke("control C"), "none"); // disable copy
         }
      });
      panel.add(copy);
      paste = new JButton("Paste");
      paste.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            textArea.getInputMap().put(KeyStroke.getKeyStroke("control V"), "none"); // disable paste
         }
      });
      panel.add(paste);
      add(panel, BorderLayout.NORTH);
      add(new JScrollPane(textArea), BorderLayout.CENTER);
      setSize(400, 250);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String []args) {
      new JTextAreaCutCopyPasteDisableTest();
   }
}

출력

Java에서 JTextArea의 잘라내기, 복사 및 붙여넣기 기능을 비활성화하려면 어떻게 해야 합니까?