2014년 1월 16일 목요일

SWT - Canvas에 도형그리기




Canvas에 도형그리기


SWT에서 그래픽을 사용하려면, 그래픽 컨텍스트(GC, Graphic Context)를 사용해야 합니다. GC는 Control 위에서 그림판과 같은 기능을 합니다.

그래픽 애플리케이션을 구축하려면 GC를 생성하고, 이를 컴포넌트에 연결해야 합니다.


아래의 예제는 Shell에 Canvas 객체를 생성한 후에 shell.open() 메서드를 호출하고, 그 후에 GC객체를 생성하여 사용하는 예제입니다. shell.open() 메서드는 Canvas 화면을 지워줍니다. 그리고 GC를 모두 사용한 후에는 gc.dispose() 메서드를 호출하여 GC의 할당을 해제하여 줍니다.



▶ 예제코드



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.swtjface.Ch7;
 
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
 
public class DrawExample {
 
  public static void main(String[] args) {
  Display display = new Display();
  Shell shell = new Shell(display);
  shell.setText("Drawing Example");
 
   //shell에 Canvas 객체를 생성
  Canvas canvas = new Canvas(shell, SWT.NONE);
  canvas.setSize(150, 150);
  canvas.setLocation(20, 20);
  shell.open();
  shell.setSize(200, 220);
 
   
  
  //Canvas에 그래픽 컨텍스트를 생성
  GC gc = new GC(canvas);
  //사각형
  gc.drawRectangle(10, 10, 40, 45);
  //원
  gc.drawOval(65, 10, 30, 35); 
  //선
  gc.drawLine(130, 10, 90, 80); 
  //다각형
  gc.drawPolygon(new int[] { 20, 70, 45, 90, 70, 70 }); 
  //꺾은선
  gc.drawPolyline(new int[] { 10, 120, 70, 100, 100, 130, 130, 75 }); 
  gc.dispose(); //할당 해제
 
   while (!shell.isDisposed()) {
   if (!display.readAndDispatch())
    display.sleep();
  }
  display.dispose();
 }
}



▶ 실행결과






댓글 없음:

댓글 쓰기