테이블에서 테이블로 드래그앤드랍~ 하기~
해대기
이와 같은 테이블을 Editor로 만들었습니다. treeViewer에서 DB를 연결해서 테이블의 데이터를 테이블에
올려놓습니다. 소스 쪽과 타겟 쪽의 데이터를 다 올려 놓은후에 소스쪽의 데이터를 드래그해서 타겟쪽에
옮길려고 합니다... 예를들어 소스쪽에 컬럼명하나를 드래그해서 타겟쪽 Derivation에 드랍할려고합니다...
트리 드래그앤드랍 예제를 보고 따라해 봤는데... 안되네요 ㅜㅜ
대충 테이블은
table1 = new Table(top,SWT.BORDER|SWT.CHECK|SWT.H_SCROLL|SWT.V_SCROLL);
table1.setHeaderVisible(true);
table1.setLayoutData(gridData2);
table1.setLinesVisible(true);
TableColumn tableColumn3 = new TableColumn(table1, SWT.NONE);
tableColumn3.setWidth(30);
tableColumn3.setText(PK);
TableColumn tableColumn4 = new TableColumn(table1, SWT.NONE);
tableColumn4.setWidth(100);
tableColumn4.setText(Derivation);
TableColumn tableColumn5 = new TableColumn(table1, SWT.NONE);
tableColumn5.setWidth(80);
tableColumn5.setText(TCol_Name);
TableColumn tableColumn6 = new TableColumn(table1, SWT.NONE);
tableColumn6.setWidth(80);
tableColumn6.setText(TData_Type);
TableColumn tableColumn7 = new TableColumn(table1, SWT.NONE);
tableColumn7.setWidth(60);
tableColumn7.setText(Length);
createDragSource(table1);
createDropTarget(table1);
이렇게 구현했구요~ 이건 타겟쪽 드래그앤드랍 코딩은 다른 예제를 공부해서 이렇게 했습니다.private void setDragDrop(Table table)
{
int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT;
DragSource source = new DragSource(table, operations);
//텍스트나 파일 형태의 데이터를 수락한다.
final TextTransfer textTransfer = TextTransfer.getInstance();
Transfer[] types = new Transfer[] {TextTransfer.getInstance()};
types = new Transfer[] {textTransfer};
source.setTransfer(types);
source.addDragListener(new DragSourceListener() {
public void dragStart(DragSourceEvent event) {
// 라벨(label)에 실제로 텍스트가 있을 때만 드래그를 시작한다.
// 이 텍스트가 타겟에 드롭될 것이다.
if (item.getText().length() == 0) {
event.doit = true;
}
}
public void dragSetData(DragSourceEvent event) {
// 요청된 타입의 데이터를 제공한다.
if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
event.data = item.getText();
}
}
public void dragFinished(DragSourceEvent event) {
// 이동 동작이 수행된 것이라면,
// 소스의 데이터를 지워준다.
if (event.detail == DND.DROP_MOVE){
item.setText();
}
}
});
DropTarget target = new DropTarget(table1, operations);
types = new Transfer[] {textTransfer};
source.setTransfer(types);
target.addDropListener(new DropTargetListener() {
public void dragEnter(DropTargetEvent event) {
if (event.detail == DND.DROP_DEFAULT) {
if ((event.operations & DND.DROP_COPY) != 0) {
 sp; event.detail = DND.DROP_COPY;
} else {
event.detail = DND.DROP_NONE;
}
}
// 텍스트나 파일을 수락한다.
}
public void dragOver(DropTargetEvent event) {
event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
if (textTransfer.isSupportedType(event.currentDataType)) {
// 알림: 지원하지 않는 플랫폼에서는 null이 리턴된다.
Object o = textTransfer.nativeToJava(event.currentDataType);
String t = (String)o;
if (t != null) System.out.println(t);
}
}
public void dragOperationChanged(DropTargetEvent event) {
if (event.detail == DND.DROP_DEFAULT) {
if ((event.operations & DND.DROP_COPY) != 0) {
event.detail = DND.DROP_COPY;
} else {
event.detail = DND.DROP_NONE;
}
}
}
public void dragLeave(DropTargetEvent event) {
}
public void dropAccept(DropTargetEvent event) {
}
public void drop(DropTargetEvent event) {
if (textTransfer.isSupportedType(event.currentDataType)) {
String text = (String)event.data;
TableItem item = new TableItem(talbe, SWT.NONE);
item.setText(text); }
}
});
}
어디가 잘못된건가요? 아예~ 스타트 쪽부터 컬럼의 아이템값들이 인식을 못합니다 ㅜㅜ 아 이런 코딩으로도 해봤어요
private void createDropTarget(final Table table1)
{
//createDragSource(table);
// createDropTarget(table);
// createDragSource(table1);
// createDropTarget(table1);
Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
DropTarget dropTarget = new DropTarget(table1, DND.DROP_COPY);
dropTarget.setTransfer(types);
dropTarget.addDropListener(new DropTargetListener() {
public void dragEnter(DropTargetEvent event) {
}
public void dragLeave(DropTargetEvent event) {
}
public void dragOperationChanged(DropTargetEvent event) {
}
public void dragOver(DropTargetEvent event) {
}
public void drop(DropTargetEvent event) {
String data = (String) event.data;
table1.getData(data);
}
public void dropAccept(DropTargetEvent event) {
}
});
}
private void createDragSource(final Table table) {
Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
DragSource dragSource = new DragSource(table, DND.DROP_COPY);
dragSource.setTransfer(types);
dragSource.addDragListener(new DragSourceListener() {
public void dragStart(DragSourceEvent event) {
if (((String) table.getData()).length() 0) {
event.doit = true;
}BRsp; }
}
public void dragSetData(DragSourceEvent event) {
event.data = table.getSelection();
}
public void dragFinished(DragSourceEvent event) {
//do nothing
}
});
}
도와주세용!!
| 번호 | 제 목 | 글쓴이 | 날짜 |
|---|---|---|---|
| 2752024 | 소숫점 뺄셈 !! ㅠㅜ | 초롬 | 2026-10-20 |
| 2751970 | 자바 게임 만들려는데 부탁드립니다 (1) | 라온제나 | 2026-10-19 |
| 2751908 | 자바스크립트 처리속도를 체크할 수 있는 방법 있나요? (1) | 테이 | 2026-10-19 |
| 2751822 | 그누보드 아이프레임으로 구현했는데 제목 클릭해서 들어가면 푸터가 동동...떠다녀요 | 내꺼하자 | 2026-10-18 |
| 2751790 | 자바 그래픽 관련을 공부하고 싶은데요.. 어디 좋은 사이트나 책 없을까요?? (1) | 큰재 | 2026-10-18 |
| 2751733 | CTF가머죠? (5) | 두동 | 2026-10-17 |
| 2751709 | 배열부분 궁금한 부분이있습니다. | 딸기우유 | 2026-10-17 |
| 2751677 | 포인터 책을 보다가,,, (2) | 동백 | 2026-10-17 |
| 2751648 | 익스플로 버전에 따라서 생기는 공백.. (1) | 모아 | 2026-10-17 |
| 2751623 | DEL 태그의에서 선굵기 및 컬러지정이 가능한가 해서요~ (4) | 비치나 | 2026-10-16 |
| 2751573 | 테마 업로드 에러.. (1) | 꽃 | 2026-10-16 |
| 2751548 | 수학? 물리?? (3) | 찬늘 | 2026-10-16 |
| 2751461 | 상단네비 fixed ie6 핵 해결방안이 있을까요? | 맑다 | 2026-10-15 |
| 2751436 | 레이아웃을 잡고 코딩을 하는데 드림위버에서의 결과와 IE에서 결과가 다르게 나오네요. (3) | 키클 | 2026-10-15 |
| 2751403 | 형들좀도와주세요string compression (1) | 알렉산더 | 2026-10-14 |
| 2751349 | 링크 다운로드하기 | 팬지 | 2026-10-14 |
| 2751295 | c++한번도 손않댄 사람이... | 날위해 | 2026-10-13 |
| 2751267 | 플래시8 사용에서 플레이어 만들었는데요 (1) | 블1랙캣 | 2026-10-13 |
| 2751182 | 회원가입 | 파랑새 | 2026-10-12 |
| 2751152 | 소셜 플러그인 문제입니다. | 얀 | 2026-10-12 |
