DataFlavor — 데이터에 대한 메타정보를 제공하는 클래스

DataFlavor — 데이터에 대한 메타정보를 제공하는 클래스

클립보드나 드래그 앤 드롭으로 전달되는 데이터는 어떤 '형식'인지에 대한 정보가 필요해요. DataFlavor는 그런 데이터에 대한 메타정보를 제공하는 클래스예요. 데이터가 클립보드에 접근되거나 드래그 앤 드롭 과정에서 사용될 때, 데이터의 형태를 기술해요.

RFC 2045와 RFC 2046에 정의된 콘텐츠 타입(content type)을 기반으로 해요. 콘텐츠 타입은 흔히 MIME 타입이라고 불려요.

출처: Java API Reference

본문

DataFlavor는 클래스로, 미리 정의된 상수들과 함께 다양한 생성자·메서드를 제공해요.

public class DataFlavor implements Transferable, Serializable, Cloneable

주요 상수는 다음과 같아요.

public static final DataFlavor stringFlavor
public static final DataFlavor imageFlavor
@Deprecated public static final DataFlavor plainTextFlavor
public static final String javaSerializedObjectMimeType
public static final DataFlavor javaFileListFlavor
public static final String javaJVMLocalObjectMimeType
public static final String javaRemoteObjectMimeType
public static final DataFlavor selectionHtmlFlavor
  • stringFlavor — 자바 String 데이터를 나타내는 표준 플레이버.
  • imageFlavor — 이미지 데이터.
  • javaFileListFlavor — 파일 목록 데이터.
  • selectionHtmlFlavor — HTML 선택 영역 데이터.

주요 메서드는 다음과 같아요.

public boolean isMimeTypeEqual(String mimeType)
public boolean isFlavorTextType()
public String getMimeType()
public String getHumanPresentableName()
public String getPrimaryType()
public String getSubType()
public Class<?> getRepresentationClass()
public boolean isRepresentationClassInputStream()
public boolean isRepresentationClassSerializable()
public boolean equals(Object o)
public DataFlavor getFlavor(Class<?> clazz) throws ClassNotFoundException

DataFlavor는 콘텐츠 타입(media type + subtype), 사람이 읽을 수 있는 이름, 표현 클래스(representation class)를 결합해 데이터 형식을 나타내요. equalsisMimeTypeEqual과 표현 클래스가 같은지를 기준으로 판정해요.

전형적으로 클립보드에서 텍스트를 읽을 때 stringFlavorgetTransferData를 호출하는 식이에요. java.awt.datatransfer 패키지에 속해요.

더 알아보기 (Learn more)