수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

테이블에서 테이블로 드래그앤드랍~ 하기~

해대기

2026.09.14

이와 같은 테이블을 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
}
});
}
도와주세용!!

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
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
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com