JavaTM Platform
Standard Ed. 6

javax.swing
클래스 TransferHandler

java.lang.Object 
  상위를 확장 javax.swing.TransferHandler
모든 구현된 인터페이스:
Serializable


public class TransferHandler
extends Object
implements Serializable

이 클래스는, Swing 컴퍼넌트에 대한 Transferable 의 전송 처리에 사용합니다. Transferable 는, 컷, 카피, 페이스트등을 통해서 클립보드에 보내는 데이터 또는 클립보드로부터 받는 데이터를 나타내기 위해서(때문에) 사용합니다. 또, 드래그&드롭 조작으로, 컴퍼넌트로부터의 드래그 및 컴퍼넌트에의 드롭을 나타내기 위해서(때문에) 사용합니다. Swing 에는, 이 클래스의 구현에 의해 제공되는 기능을 사용하는 컷, 카피, 페이스트의 키보드 바인딩을 자동적으로 지원하는 기능이 준비되어 있습니다. 또, 드래그&드롭에 대해서도와 같이 자동적으로 지원됩니다. Swing 의 개발자는, 주로 Swing 컴퍼넌트로 transferHandler 프로퍼티을 설정하는 것으로써, 전송의 시멘틱스를 지정하는 작업에 집중할 수 있습니다.  

이 클래스는, 생성자 의 프로퍼티명을 지정하는 것만으로, 디폴트의 동작으로서 컴퍼넌트의 프로퍼티을 전송 하도록(듯이) 구현됩니다. 예를 들어, 클립보드나 드래그 & 드래그 조작에 의해 컴퍼넌트간에 foreground color를 전송 하려면 , 캐릭터 라인 「foreground」를 사용해 TransferHandler 를 구축합니다. 편입 지원는,getForeground 에 의해 반환된 칼라를 전송원으로서 사용해,setForeground 를 전송 먼저 사용합니다.  

자세한 것은, 「The Java Tutorial」의「How to Use Drag and Drop and Data Transfer」를 참조해 주세요.

도입된 버젼:
1.4

상자의 클래스의 개요
static class TransferHandler.DropLocation
          드롭 된 데이터를 삽입하는 위치를 나타냅니다.
static class TransferHandler.TransferSupport
          이 클래스에는, 클립보드에 의한 전송 또는 드래그&드롭에 의한 전송에 관련하는 상세 정보를 모두 캡슐화하는 기능과 드래그&드롭 조작을 커스터마이즈 하는 기능이 있습니다.
 
필드의 개요
static int COPY
           「copy」의 전송 액션을 나타내는 int 입니다.
static int COPY_OR_MOVE
           「copy」또는 「move」의 소스 액션 기능을 나타내는 int 입니다.
static int LINK
          "link" 의 전송 액션을 나타내는 int 입니다.
static int MOVE
           「move」의 전송 액션을 나타내는 int 입니다.
static int NONE
          전송 액션을 하지 않는 것을 나타내는 int 입니다.
 
생성자 의 개요
protected TransferHandler ()
          서브 클래스에 편리한 생성자 입니다.
  TransferHandler (String  property)
          클립보드 또는 드래그 & 드롭 조작에 의해 컴퍼넌트간의 Java Bean 프로퍼티을 전송 할 수 있는 전송 핸들러를 구축합니다.
 
메소드의 개요
 boolean canImport (JComponent  comp, DataFlavor [] transferFlavors)
          컴퍼넌트가 실제로 일련의 데이타후레이바의 임포트를 시도하기 전에, 데이타후레이바의 임포트를 받아들일지 어떨지를 나타냅니다.
 boolean canImport (TransferHandler.TransferSupport  support)
          이 메소드는, 개발자가 전송의 프로퍼티의 설정이나, 전송이 가능한가 어떤가의 판단을 할 수 있도록(듯이) 하기 위한(해), 드래그&드롭 조작중에 반복해 불려 갑니다.
protected  Transferable createTransferable (JComponent  c)
          데이터 전송의 소스로서 사용하는 Transferable 를 작성합니다.
 void exportAsDrag (JComponent  comp, InputEvent  e, int action)
          Swing 드래그 지원를 개시합니다.
protected  void exportDone (JComponent  source, Transferable  data, int action)
          데이터의 export 후에 불려 갑니다.
 void exportToClipboard (JComponent  comp, Clipboard  clip, int action)
          지정된 컴퍼넌트가 지정된 클립보드에 전송 합니다.
static Action getCopyAction ()
          클립보드에의 카피 조작을 실행하는 Action 를 돌려줍니다.
static Action getCutAction ()
          클립보드에의 잘라내 조작을 실행하는 Action 를 돌려줍니다.
static Action getPasteAction ()
          클립보드로부터의 붙이기 조작을 실행하는 Action 를 돌려줍니다.
 int getSourceActions (JComponent  c)
          소스로 지원되고 있는 전송 액션의 종류를 돌려줍니다.
 Icon getVisualRepresentation (Transferable  t)
          전송의 외관을 설정하는 객체를 돌려줍니다.
 boolean importData (JComponent  comp, Transferable  t)
          클립보드 또는 DND 드롭 조작으로부터 컴퍼넌트에 전송 합니다.
 boolean importData (TransferHandler.TransferSupport  support)
          클립보드 또는 드래그&드롭 조작으로부터 전송 합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

NONE

public static final int NONE
전송 액션을 하지 않는 것을 나타내는 int 입니다.

관련 항목:
정수 필드치

COPY

public static final int COPY
「copy」의 전송 액션을 나타내는 int 입니다. 데이터가 클립보드에 카피되었을 때, 또는 드래그&드롭 조작으로 다른 장소에 카피되었을 때에 사용됩니다.

관련 항목:
정수 필드치

MOVE

public static final int MOVE
「move」의 전송 액션을 나타내는 int 입니다. 데이터가 클립보드에 이동 (컷)되었을 때, 또는 드래그&드롭 조작으로 다른 장소에 이동되었을 때에 사용됩니다.

관련 항목:
정수 필드치

COPY_OR_MOVE

public static final int COPY_OR_MOVE
「copy」또는 「move」의 소스 액션 기능을 나타내는 int 입니다.

관련 항목:
정수 필드치

LINK

public static final int LINK
"link" 의 전송 액션을 나타내는 int 입니다. 이 값을 사용해, 드래그&드롭 조작으로 데이터가 링크되도록(듯이) 지정할 수가 있습니다.

도입된 버젼:
1.6
관련 항목:
DnDConstants.ACTION_LINK , 정수 필드치
생성자 의 상세

TransferHandler

public TransferHandler(String  property)
클립보드 또는 드래그 & 드롭 조작에 의해 컴퍼넌트간의 Java Bean 프로퍼티을 전송 할 수 있는 전송 핸들러를 구축합니다.

파라미터:
property - 전송 하는 프로퍼티의 이름. 전송 핸들러에 관련지을 수 있고 있는 프로퍼티이 없는 경우는 null 도 가능 (예를 들어 그 외의 종류의 전송을 실행하는 서브 클래스)

TransferHandler

protected TransferHandler()
서브 클래스에 편리한 생성자 입니다.

메소드의 상세

getCutAction

public static Action  getCutAction()
클립보드에의 잘라내 조작을 실행하는 Action 를 돌려줍니다. 실행하면(자), 이 액션은, 컴퍼넌트의 TransferHandler 상에서 MOVE 액션을 지정해 exportToClipboard 를 호출하는 것으로,ActionEventJComponent 소스에 영향을 미칩니다.

반환값:
클립보드에의 절취를 실행하는 Action

getCopyAction

public static Action  getCopyAction()
클립보드에의 카피 조작을 실행하는 Action 를 돌려줍니다. 실행하면(자), 이 액션은, 컴퍼넌트의 TransferHandler 상에서 COPY 액션을 지정해 exportToClipboard 를 호출하는 것으로,ActionEventJComponent 소스에 영향을 미칩니다.

반환값:
클립보드에의 카피를 실행하는 Action

getPasteAction

public static Action  getPasteAction()
클립보드로부터의 붙이기 조작을 실행하는 Action 를 돌려줍니다. 실행하면(자), 이 액션은, 컴퍼넌트의 TransferHandler 상에서 클립보드 컨텐츠를 지정해 importData 를 호출하는 것으로,ActionEventJComponent 소스에 영향을 미칩니다.

반환값:
클립보드로부터의 붙이기를 실행하는 Action

exportAsDrag

public void exportAsDrag(JComponent  comp,
                         InputEvent  e,
                         int action)
Swing 드래그 지원를 개시합니다. 컴퍼넌트로 dragEnabled 프로퍼티이 설정되어 있는 경우,javax.swing.plaf.basic 패키지의 다양한 UI 의 구현으로부터, 이 메소드가 불려 갑니다. UI 의 커스텀 구현으로부터 호출해, Swing 드래그 지원를 사용할 수 있습니다. 또,JComponent 의 서브 클래스로서 기술되는 Swing 의 확장으로부터 호출해, Swing 드래그 지원의 기능을 이용할 수 있습니다.  

이 메소드의 호출이 돌아오는 시점에서 전송이 완료하고 있을 필요는 없습니다. 즉, 이 메소드의 호출에 의해, 드롭의 대기를 방해할 수 있을 것은 없습니다. 전송은,java.awt.dnd 기구의 Swing 의 구현을 사용해 실행되어 개발자가 그 이상 처리를 추가할 필요는 없습니다. 전송이 완료하면(자),exportDone 메소드가 불려 갑니다.

파라미터:
comp - 전송 되는 데이터를 보관 유지하는 컴퍼넌트. TransferHandler 의 공유를 가능하게 하기 위해서 제공되는
e - 전송을 트리거한 이벤트
action - 최초로 요구된 전송 액션. COPY,MOVE, 또는LINK. DnD 시스템은, 드래그 조작중에 사용되는 액션을 변경할 수가 있다

exportToClipboard

public void exportToClipboard(JComponent  comp,
                              Clipboard  clip,
                              int action)
                       throws IllegalStateException 
지정된 컴퍼넌트가 지정된 클립보드에 전송 합니다. 이 메소드는, 컴퍼넌트의 액션 맵에 등록되어 있는, 디폴트의 컷 액션 또는 카피 액션으로 불려 갑니다.  

전송은,java.awt.datatransfer 기구를 사용해 실행되어 개발자가 그 이상 처리를 추가할 필요는 없습니다. 데이터 전송이 모두 완료하면(자), 이 메소드가 복귀하기 전에, 발생한 액션으로 exportDone 메소드가 불려 갑니다. 데이터를 클립보드에 붙이려고 했을 때에 클립보드를 사용할 수 없는 경우는,Clipboard.setContents(Transferable, ClipboardOwner) 에 의해 throw 된 IllegalStateException 가 이 메소드를 개입시켜 전파 됩니다. 다만, 일관성을 유지하기 위해서(때문에) exportDone 는 우선 NONE 라고 하는 액션으로 불려 갑니다.

파라미터:
comp - 전송 되는 데이터를 보관 유지하는 컴퍼넌트. TransferHandler 의 공유를 가능하게 하기 위해서 제공되는
clip - 데이터의 전송처의 클립보드
action - 요구된 전송 액션. 값은 COPY 또는 MOVE. 실행되는 조작은, getSourceActions 에 의한 전송 기능이라고 요구된 액션에 의한 전송 기능의 공통 부분. 요구된 액션이 지원되어 있지 않은 경우, 액션은 NONE
예외:
IllegalStateException - 클립보드가 현재 사용할 수 없는 경우
관련 항목:
Clipboard.setContents(Transferable, ClipboardOwner)

importData

public boolean importData(TransferHandler.TransferSupport  support)
클립보드 또는 드래그&드롭 조작으로부터 전송 합니다. 임포트 되는 Transferable 와 전송 되는 컴퍼넌트는 TransferSupport 에 포함되고 있습니다.  

드래그&드롭 구현은, 이 메소드를 호출하기 전에, 전송이 적절한가 어떤가 판단하는 목적으로 canImport 를 호출합니다만, 페이스트 구현은 이 처리를 실시하지 않습니다. 이 때문에, 이 메소드의 호출시에, 페이스트이기 때문에 전송을 실시할 수가 있으면(자) 상정할 수 없습니다. 이 경우에 대응하기 위해(때문에),canImport 를 명시적으로 호출하는 것을 추천합니다.  

주:이 메소드에게 건네지는 TransferSupport 는, 메소드가 불려 가고 있는 동안만 유효합니다. 이 메소드의 종료후에 포함되는 값은 미정도리입니다.

파라미터:
support - 전송의 상세를 포함하는 객체. null 이외
반환값:
데이터가 컴퍼넌트에 삽입되었을 경우는 true, 그렇지 않은 경우는 false
예외:
NullPointerException - supportnull 의 경우
도입된 버젼:
1.6
관련 항목:
canImport(TransferHandler.TransferSupport)

importData

public boolean importData(JComponent  comp,
                          Transferable  t)
클립보드 또는 DND 드롭 조작으로부터 컴퍼넌트에 전송 합니다. Transferable 는, 컴퍼넌트에 임포트 되는 데이터를 나타냅니다.  

주:Swing 는,TransferSupport 를 실행하는 새로운 버젼의 importData 를 호출합니다. TransferSupport 는, 이 메소드를 호출합니다 (TransferSupport 내의 컴퍼넌트가 JComponent 인 경우). 새로운 버젼은, 보다 많은 정보를 제공합니다. 또,JFrame 나 그 외의 JComponent 이외의 컴퍼넌트에 TransferHandler 를 직접 설정해 사용할 수가 있는 유일한 버젼이기도 합니다. 이 때문에, 개발자에게는, 새로운 편의 버젼을 호출해, 오버라이드(override) 하는 것을 장려합니다.

파라미터:
comp - 전송을 받는 컴퍼넌트. TransferHandler 의 공유를 가능하게 하기 위해서 제공되는
t - 임포트 하는 데이터
반환값:
데이터가 컴퍼넌트에 삽입되었을 경우는 true, 그렇지 않은 경우는 false
관련 항목:
importData(TransferHandler.TransferSupport)

canImport

public boolean canImport(TransferHandler.TransferSupport  support)
이 메소드는, 개발자가 전송의 프로퍼티의 설정이나, 전송이 가능한가 어떤가의 판단을 할 수 있도록(듯이) 하기 위한(해), 드래그&드롭 조작중에 반복해 불려 갑니다. 반환값이 true 의 경우는, 현재, 지정의 TransferSupport (전송의 상세 정보 모든 것이 포함되고 있다)에 의해 나타내지는 전송이 가능합니다. 반환값이 false 의 경우는, 전송은 거부됩니다.  

드래그&드롭중에 드롭 위치를 자동적으로 표시하는 컴퍼넌트의 경우, 전송을 받아들이면(자), 디폴트로 드롭 위치가 나타납니다. 이것을 변경하려면 ,TransferSupport 상에서 setShowDropLocation 를 호출합니다.  

디폴트에서는, 전송이 받아들여지는 경우, 사용자가 드래그 제스처(gesture)에 의해 선택한 드롭 액션이 선택됩니다. 개발자는, 이것을 오버라이드(override) 해, 지원되고 있는 소스 액션으로부터 다른 액션을 선택할 수 있습니다. 이 때문에는,TransferSupport 상에서 setDropAction 를 호출합니다.  

canImport 를 호출할 때마다,TransferSupport 에 포함된 상태가 갱신됩니다. 이 때문에, 여기서 설정된 모든 프로퍼티은, 호출마다 설정할 필요가 있습니다. 드롭시에는,importData 의 호출전에 canImport 가 1 회만 불려 갑니다. 이 마지막 호출중에 TransferSupport 상에서 설정된 모든 상태는,importData 에 포함됩니다.  

이 메소드가, 페이스트 조작의 응답으로서 내부에서 불려 갈 것은 없습니다. 이 때문에,importData 의 구현은 이 메소드를 명시적으로 호출해, 이 메소드가 페이스트 조작의 적성도 돌려주는 대로 준비하는 것이 추천 되고 있습니다.  

주:이 메소드에게 건네지는 TransferSupport 는, 메소드가 불려 가고 있는 동안만 유효합니다. 이 메소드의 종료후에 포함되는 값은 미정도리입니다.

파라미터:
support - 전송의 상세를 포함하는 객체. null 이외
반환값:
임포트가 가능한 경우는 true, 그렇지 않은 경우는 false
예외:
NullPointerException - supportnull 의 경우
도입된 버젼:
1.6
관련 항목:
importData(TransferHandler.TransferSupport) , TransferHandler.TransferSupport.setShowDropLocation(boolean) , TransferHandler.TransferSupport.setDropAction(int)

canImport

public boolean canImport(JComponent  comp,
                         DataFlavor [] transferFlavors)
컴퍼넌트가 실제로 일련의 데이타후레이바의 임포트를 시도하기 전에, 데이타후레이바의 임포트를 받아들일지 어떨지를 나타냅니다.  

주:Swing 는,TransferSupport 를 실행하는 새로운 버젼의 canImport 를 호출합니다. TransferSupport 는, 이 메소드를 호출합니다 (TransferSupport 내의 컴퍼넌트가 JComponent 인 경우). 새로운 버젼은, 보다 많은 정보를 제공합니다. 또,JFrame 나 그 외의 JComponent 이외의 컴퍼넌트에 TransferHandler 를 직접 설정해 사용할 수가 있는 유일한 버젼이기도 합니다. 이 때문에, 개발자에게는, 새로운 편의 버젼을 호출해, 오버라이드(override) 하는 것을 장려합니다.

파라미터:
comp - 전송을 받는 컴퍼넌트. TransferHandler 의 공유를 가능하게 하기 위해서 제공되는
transferFlavors - 유효한 데이터 형식
반환값:
데이터를 컴퍼넌트에 삽입할 수 있는 경우는 true, 그렇지 않은 경우는 false
관련 항목:
canImport(TransferHandler.TransferSupport)

getSourceActions

public int getSourceActions(JComponent  c)
소스로 지원되고 있는 전송 액션의 종류를 돌려줍니다. 반환되는 값은,COPY,MOVE, 및 LINK 의 비트 단위의 논리합이 됩니다.  

가변이 아닌 모델도 존재합니다. 이러한 모델에서는 MOVE 의 전송 액션은 통지되지 않습니다. NONE 를 돌려주는 것으로, 컴퍼넌트로부터의 전송을 무효화합니다.

파라미터:
c - 전송 되는 데이터를 보관 유지하는 컴퍼넌트. TransferHandler 의 공유를 가능하게 하기 위해서 제공된다
반환값:
전송 프로퍼티이 발견되었을 경우는 COPY, 그렇지 않은 경우는 NONE 를 돌려준다

getVisualRepresentation

public Icon  getVisualRepresentation(Transferable  t)
전송의 외관을 설정하는 객체를 돌려줍니다. 이것은, 드래그 조작의 실행중에 피드백을 제공하는 목적과 시각 표현되는 클립보드 구현내의 전송을 나타내는 목적으로 사용할 수 있습니다. Icon 인터페이스의 구현은, 그래픽 클립 또는 알파 레벨을 변경해야 하는 것이 아닙니다. 아이콘의 구현은 구형일 필요는 없고, 경계의 구형을 모두 페인트 할 필요도 없습니다. 또, 아이콘의 페인트 메소드를 호출하는 논리에서는, 모든 비트가 페인트 되고 있는 것을 상정 해서는 안됩니다. 이 메소드의 반환값으로서는 null 도 용서되어 비주얼 표현이 설정되어 있지 않은 것을 나타냅니다. 그 경우, 호출 논리에서는 Transferable 를 자유롭게 나타낼 수가 있습니다.  

null 가 돌려주어졌을 경우, 디폴트의 Swing 논리에서는 알파 합성된 드래그 애니메이션은 실행되지 않습니다.

파라미터:
t - 전송 되는 데이터. createTransferable 메소드에 의해 작성된 것과 상정된다
반환값:
디폴트의 비주얼 표현이 없는 것을 나타내는 null

createTransferable

protected Transferable  createTransferable(JComponent  c)
데이터 전송의 소스로서 사용하는 Transferable 를 작성합니다. 전송 하는 데이터의 표현을 돌려줍니다. 컴퍼넌트의 프로퍼티이 null 의 경우는 null 를 돌려줍니다.

파라미터:
c - 전송 되는 데이터를 보관 유지하는 컴퍼넌트. TransferHandler 의 공유를 가능하게 하기 위해서 제공된다
반환값:
전송 하는 데이터의 표현. c 에 관련지을 수 있었던 프로퍼티이 null 의 경우는 null

exportDone

protected void exportDone(JComponent  source,
                          Transferable  data,
                          int action)
데이터의 export 후에 불려 갑니다. 이 메소드는, 액션이 MOVE 의 경우에 전송 된 데이터를 삭제합니다.  

MOVE 는 이 구현에 지원되는 액션이 아니기 때문에, 이 메소드의 구현에서는 아무것도 행해지지 않습니다. getSourceActions 에는 MOVE 가 포함되지 않습니다.

파라미터:
source - 데이터의 소스인 컴퍼넌트
data - 전송 된 데이터. 액션이 NONE 인 경우는 null
action - 실제로 실행된 액션

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.