StringSelection — String 전송을 지원하는 Transferable 클래스

StringSelection — String 전송을 지원하는 Transferable 클래스

문자열 데이터를 클립보드로 복사하거나 드래그 앤 드롭하려면, 그 문자열을 Transferable로 감싸야 해요. StringSelectionString을 전송할 수 있는 Transferable 구현 클래스예요. 텍스트 복사/붙여넣기의 가장 기본적인 구현이에요.

DataFlavor.stringFlavor와 그에 상응하는 모든 플레이버를 지원해요.

출처: Java API Reference

본문

StringSelection은 클래스로, Transferable을 구현해요. ClipboardOwner도 함께 구현해요.

public class StringSelection
extends Object
implements Transferable, ClipboardOwner

주요 생성자와 메서드는 다음과 같아요.

public StringSelection(String data)
public DataFlavor[] getTransferDataFlavors()
public boolean isDataFlavorSupported(DataFlavor flavor)
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException
public void lostOwnership(Clipboard clipboard, Transferable contents)
  • 생성자로 전송할 문자열을 받아요.
  • getTransferDataFlavors() — 이 객체가 지원하는 데이터 형식 목록을 돌려줘요. stringFlavor와 그에 상응하는 플레이버를 포함해요.
  • isDataFlavorSupported(...) — 특정 플레이버가 지원되는지 확인해요.
  • getTransferData(...) — 요청한 플레이버에 맞는 데이터를 돌려줘요. 문자열 텍스트 형식이면 String을 반환해요.
  • lostOwnership(...)ClipboardOwner 구현으로, 소유권을 잃었을 때 호출돼요.

전형적인 용법은 이래요. 복사할 문자열을 StringSelection으로 감싸고 Clipboard.setContents(selection, selection)으로 설정하면, 다른 프로그램에서 텍스트를 붙여넣을 수 있어요.

StringSelection selection = new StringSelection("복사할 텍스트");
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(selection, selection);

DataFlavor.plainTextFlavor와 그에 상응하는 플레이버 지원은 Deprecated됐어요. 그 외 다른 DataFlavor는 지원하지 않아요. java.awt.datatransfer 패키지에 속해요.

더 알아보기 (Learn more)