|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.swing.TransferHandler
public class TransferHandler
이 클래스는, 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」를 참조해 주세요.
상자의 클래스의 개요 | |
---|---|
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 |
필드의 상세 |
---|
public static final int NONE
int
입니다.
public static final int COPY
int
입니다. 데이터가 클립보드에 카피되었을 때, 또는 드래그&드롭 조작으로 다른 장소에 카피되었을 때에 사용됩니다.
public static final int MOVE
int
입니다. 데이터가 클립보드에 이동 (컷)되었을 때, 또는 드래그&드롭 조작으로 다른 장소에 이동되었을 때에 사용됩니다.
public static final int COPY_OR_MOVE
int
입니다.
public static final int LINK
int
입니다. 이 값을 사용해, 드래그&드롭 조작으로 데이터가 링크되도록(듯이) 지정할 수가 있습니다.
DnDConstants.ACTION_LINK
,
정수 필드치 생성자 의 상세 |
---|
public TransferHandler(String property)
property
- 전송 하는 프로퍼티의 이름.
전송 핸들러에 관련지을 수 있고 있는 프로퍼티이 없는 경우는 null
도 가능
(예를 들어 그 외의 종류의 전송을 실행하는 서브 클래스)protected TransferHandler()
메소드의 상세 |
---|
public static Action getCutAction()
Action
를 돌려줍니다. 실행하면(자), 이 액션은, 컴퍼넌트의 TransferHandler
상에서 MOVE
액션을 지정해 exportToClipboard
를 호출하는 것으로,ActionEvent
의 JComponent
소스에 영향을 미칩니다.
Action
public static Action getCopyAction()
Action
를 돌려줍니다. 실행하면(자), 이 액션은, 컴퍼넌트의 TransferHandler
상에서 COPY
액션을 지정해 exportToClipboard
를 호출하는 것으로,ActionEvent
의 JComponent
소스에 영향을 미칩니다.
Action
public static Action getPasteAction()
Action
를 돌려줍니다. 실행하면(자), 이 액션은, 컴퍼넌트의 TransferHandler
상에서 클립보드 컨텐츠를 지정해 importData
를 호출하는 것으로,ActionEvent
의 JComponent
소스에 영향을 미칩니다.
Action
public void exportAsDrag(JComponent comp, InputEvent e, int action)
javax.swing.plaf.basic
패키지의 다양한 UI 의 구현으로부터, 이 메소드가 불려 갑니다. UI 의 커스텀 구현으로부터 호출해, Swing 드래그 지원를 사용할 수 있습니다. 또,JComponent
의 서브 클래스로서 기술되는 Swing 의 확장으로부터 호출해, Swing 드래그 지원의 기능을 이용할 수 있습니다.
이 메소드의 호출이 돌아오는 시점에서 전송이 완료하고 있을 필요는 없습니다. 즉, 이 메소드의 호출에 의해, 드롭의 대기를 방해할 수 있을 것은 없습니다. 전송은,java.awt.dnd
기구의 Swing 의 구현을 사용해 실행되어 개발자가 그 이상 처리를 추가할 필요는 없습니다. 전송이 완료하면(자),exportDone
메소드가 불려 갑니다.
comp
- 전송 되는 데이터를 보관 유지하는 컴퍼넌트.
TransferHandler
의 공유를 가능하게 하기 위해서 제공되는e
- 전송을 트리거한 이벤트action
- 최초로 요구된 전송 액션.
COPY
,MOVE
, 또는LINK
.
DnD 시스템은, 드래그 조작중에 사용되는 액션을
변경할 수가 있다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)
public boolean importData(TransferHandler.TransferSupport support)
Transferable
와 전송 되는 컴퍼넌트는 TransferSupport
에 포함되고 있습니다.
드래그&드롭 구현은, 이 메소드를 호출하기 전에, 전송이 적절한가 어떤가 판단하는 목적으로 canImport
를 호출합니다만, 페이스트 구현은 이 처리를 실시하지 않습니다. 이 때문에, 이 메소드의 호출시에, 페이스트이기 때문에 전송을 실시할 수가 있으면(자) 상정할 수 없습니다. 이 경우에 대응하기 위해(때문에),canImport
를 명시적으로 호출하는 것을 추천합니다.
주:이 메소드에게 건네지는 TransferSupport
는, 메소드가 불려 가고 있는 동안만 유효합니다. 이 메소드의 종료후에 포함되는 값은 미정도리입니다.
support
- 전송의 상세를 포함하는 객체. null
이외
NullPointerException
- support
가 null
의 경우canImport(TransferHandler.TransferSupport)
public boolean importData(JComponent comp, Transferable t)
Transferable
는, 컴퍼넌트에 임포트 되는 데이터를 나타냅니다.
주:Swing 는,TransferSupport
를 실행하는 새로운 버젼의 importData
를 호출합니다. TransferSupport
는, 이 메소드를 호출합니다 (TransferSupport
내의 컴퍼넌트가 JComponent
인 경우). 새로운 버젼은, 보다 많은 정보를 제공합니다. 또,JFrame
나 그 외의 JComponent
이외의 컴퍼넌트에 TransferHandler
를 직접 설정해 사용할 수가 있는 유일한 버젼이기도 합니다. 이 때문에, 개발자에게는, 새로운 편의 버젼을 호출해, 오버라이드(override) 하는 것을 장려합니다.
comp
- 전송을 받는 컴퍼넌트.
TransferHandler
의 공유를 가능하게 하기 위해서 제공되는t
- 임포트 하는 데이터
importData(TransferHandler.TransferSupport)
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
- support
가 null
의 경우importData(TransferHandler.TransferSupport)
,
TransferHandler.TransferSupport.setShowDropLocation(boolean)
,
TransferHandler.TransferSupport.setDropAction(int)
public boolean canImport(JComponent comp, DataFlavor [] transferFlavors)
주:Swing 는,TransferSupport
를 실행하는 새로운 버젼의 canImport
를 호출합니다. TransferSupport
는, 이 메소드를 호출합니다 (TransferSupport
내의 컴퍼넌트가 JComponent
인 경우). 새로운 버젼은, 보다 많은 정보를 제공합니다. 또,JFrame
나 그 외의 JComponent
이외의 컴퍼넌트에 TransferHandler
를 직접 설정해 사용할 수가 있는 유일한 버젼이기도 합니다. 이 때문에, 개발자에게는, 새로운 편의 버젼을 호출해, 오버라이드(override) 하는 것을 장려합니다.
comp
- 전송을 받는 컴퍼넌트.
TransferHandler
의 공유를 가능하게 하기 위해서 제공되는transferFlavors
- 유효한 데이터 형식
canImport(TransferHandler.TransferSupport)
public int getSourceActions(JComponent c)
COPY
,MOVE
, 및 LINK
의 비트 단위의 논리합이 됩니다.
가변이 아닌 모델도 존재합니다. 이러한 모델에서는 MOVE
의 전송 액션은 통지되지 않습니다. NONE
를 돌려주는 것으로, 컴퍼넌트로부터의 전송을 무효화합니다.
c
- 전송 되는 데이터를 보관 유지하는 컴퍼넌트.
TransferHandler
의 공유를 가능하게 하기 위해서 제공된다
COPY
,
그렇지 않은 경우는 NONE
를 돌려준다public Icon getVisualRepresentation(Transferable t)
Icon
인터페이스의 구현은, 그래픽 클립 또는 알파 레벨을 변경해야 하는 것이 아닙니다. 아이콘의 구현은 구형일 필요는 없고, 경계의 구형을 모두 페인트 할 필요도 없습니다. 또, 아이콘의 페인트 메소드를 호출하는 논리에서는, 모든 비트가 페인트 되고 있는 것을 상정 해서는 안됩니다. 이 메소드의 반환값으로서는 null
도 용서되어 비주얼 표현이 설정되어 있지 않은 것을 나타냅니다. 그 경우, 호출 논리에서는 Transferable 를 자유롭게 나타낼 수가 있습니다.
null
가 돌려주어졌을 경우, 디폴트의 Swing 논리에서는 알파 합성된 드래그 애니메이션은 실행되지 않습니다.
t
- 전송 되는 데이터.
createTransferable
메소드에 의해 작성된 것과 상정된다
null
protected Transferable createTransferable(JComponent c)
Transferable
를 작성합니다. 전송 하는 데이터의 표현을 돌려줍니다. 컴퍼넌트의 프로퍼티이 null
의 경우는 null
를 돌려줍니다.
c
- 전송 되는 데이터를 보관 유지하는 컴퍼넌트.
TransferHandler
의 공유를 가능하게 하기 위해서 제공된다
c
에 관련지을 수 있었던 프로퍼티이 null
의 경우는 null
protected void exportDone(JComponent source, Transferable data, int action)
MOVE
의 경우에 전송 된 데이터를 삭제합니다.
MOVE
는 이 구현에 지원되는 액션이 아니기 때문에, 이 메소드의 구현에서는 아무것도 행해지지 않습니다. getSourceActions
에는 MOVE
가 포함되지 않습니다.
source
- 데이터의 소스인 컴퍼넌트data
- 전송 된 데이터. 액션이 NONE
인 경우는 nullaction
- 실제로 실행된 액션
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.