더 이상 고민하지 말고 바로 코드로 넘어가겠습니다. 댓글을 주의 깊게 읽어보세요.
다음과 같이 코드 코드를 복사합니다.
/*간단한 복사, 잘라내기, 붙여넣기 기능 작업:
복사 테스트: 텍스트를 입력하고 텍스트를 선택한 다음 복사를 클릭한 다음 오른쪽의 TextArea에 커서를 놓고 붙여넣기를 클릭합니다. 잘라내기 테스트: 텍스트를 입력하고 텍스트를 선택한 다음 오른쪽의 TextArea에 커서를 놓고 잘라내기를 클릭합니다.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
공개 클래스 데모는 ActionListener를 구현합니다.
{
개인 JFrame jf;
private JPanel p1, p2, p3 //상단, 중간, 하단;
개인 JLabel 제목;
개인 JTextArea 편집,showMsg;
개인 JButton 복사, 붙여넣기, 잘라내기;
클립보드 클립보드;//시스템 클립보드를 가져옵니다.
공개데모()
{
this.init();
}
//인터페이스 초기화
공개 무효 초기화()
{
jf = new JFrame("복사하여 붙여넣기");
p1 = new JPanel(); //저장소 제목
p2 = new JPanel();//저장소 JTextArea showMsg
p3 = new JPanel(); //저장 버튼
title = new JLabel("데모 복사, 붙여넣기 및 잘라내기");
edit = new JTextArea("내용을 입력하세요",15,25);
edit.setLineWrap(true);
showMsg = new JTextArea(15,25);
showMsg.setLineWrap(true);
showMsg.setEnabled(false);
copy = new JButton("복사");
Paste = new JButton("붙여넣기");
cut = new JButton("컷");
클립보드 = jf.getToolkit().getSystemClipboard();
p1.setLayout(new FlowLayout());
p1.setSize(599,30);
p1.add(제목);
p2.setLayout(new FlowLayout());
p2.setBackground(Color.gray);
p2.add(편집);
p2.add(showMsg);
p3.setLayout(new FlowLayout());
p3.add(복사);
p3.add(붙여넣기);
p3.add(잘라내기);
//이벤트 청취 메커니즘 추가
copy.addActionListener(this);
붙여넣기.addActionListener(this);
cut.addActionListener(this);
// this.copyStr(복사);
jf.add(p1, BorderLayout.NORTH);
jf.add(p2, BorderLayout.CENTER);
jf.add(p3, BorderLayout.SOUTH);
jf.setLocation(400,200);
jf.setSize(600,450);
jf.setRessible(false);
jf.setVisible(true);
}
//이벤트 처리
공공 무효 actionPerformed(ActionEvent e)
{
if(e.getSource() == 복사)
{
String tempText = edit.getSelectedText(); //텍스트를 선택하려면 마우스를 드래그하세요.
//지정된 문자열을 전송할 수 있는 Transferable을 생성합니다.
문자열선택 editText =
새로운 StringSelection(tempText);
/**
클립보드의 현재 내용을 지정된 전송 가능한 객체로 설정합니다.
그리고 지정된 클립보드 소유자를 새 콘텐츠의 소유자로 등록합니다.
*/
클립보드.setContents(editText,null);
}else if(e.getSource() == 잘라내기)
{
String tempText = edit.getSelectedText();
문자열선택 editText =
새로운 StringSelection(tempText);
클립보드.setContents(editText,null);
int start= edit.getSelectionStart();
int end = edit.getSelectionEnd();
showMsg.replaceRange("",start,end); //Text1에서 선택한 텍스트를 삭제합니다.
}else if(e.getSource() == 붙여넣기)
{
전송 가능한 콘텐츠 = clipsboard.getContents(this);
DataFlavor 맛= DataFlavor.stringFlavor;
if( 내용.isDataFlavorSupported(flavor))
{
노력하다
{
문자열 str;
str = (String)contents.getTransferData(flavor);
showMsg.append(str);
}catch(예외예외)
{
ex.printStackTrace();
}
}
}
}
공개 정적 무효 메인(문자열[] 인수)
{
새로운 데모();
}
}
코드는 매우 간단하고 사용하기 쉽습니다. 더 좋은 아이디어가 있으면 알려주세요.