Clipboard — 잘라내기·복사·붙여넣기 데이터 전송 클래스
Clipboard — 잘라내기·복사·붙여넣기 데이터 전송 클래스
클립보드는 잘라내기(cut), 복사(copy), 붙여넣기(paste) 연산으로 데이터를 전송하는 창구예요. Clipboard는 그런 데이터 전송 메커니즘을 구현하는 클래스예요. 시스템 클립보드나 프레임 내부 클립보드와 연결되어 데이터를 읽고 쓸 수 있어요.
FlavorListener를 등록하면 클립보드에 사용 가능한 DataFlavor 집합이 바뀔 때 통지를 받을 수 있어요.
본문
클래스 선언은 다음과 같아요.
public class Clipboard
extends Object
주요 생성자와 protected 필드, 메서드는 다음과 같아요.
protected ClipboardOwner owner
protected Transferable contents
public Clipboard(String name)
public String getName()
public void setContents(Transferable contents, ClipboardOwner owner)
public Transferable getContents(Object requestor)
public DataFlavor[] getAvailableDataFlavors()
public boolean isDataFlavorAvailable(DataFlavor flavor)
public Transferable getData(DataFlavor flavor)
public void addFlavorListener(FlavorListener listener)
public void removeFlavorListener(FlavorListener listener)
getName()— 이 클립보드의 이름을 돌려줘요.setContents(contents, owner)— 클립보드 내용을 설정해요.contents에 실제 전송할 데이터를 담은Transferable을,owner에 클립보드 소유자를 넘겨요.getContents(requestor)/getData(flavor)— 클립보드에서 내용을 읽어요. 특정DataFlavor를 요청해 그 형식의 데이터를 얻을 수도 있어요.getAvailableDataFlavors()/isDataFlavorAvailable(...)— 현재 사용 가능한 데이터 형식 목록을 얻거나 특정 형식 사용 가능 여부를 확인해요.addFlavorListener/removeFlavorListener— 사용 가능한DataFlavor가 바뀔 때 통지받을 리스너를 등록·해제해요.
전형적인 용법은 복사하려는 내용을 StringSelection(또는 커스텀 Transferable)으로 만들어 setContents(...)로 설정하고, 붙여넣을 때 getData(...)로 읽는 것이에요. java.awt.datatransfer 패키지에 속해요.