SWT Jface Eclipse Java

/******************************************************************************
 * All Right Reserved. 
 * Copyright (c) 1998, 2004 Jackwind Li Guojie
 * 
 * Created on 2004-4-18 18:33:36 by JACK
 * $Id$
 * 
 *****************************************************************************/
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class Drawings {
  Display display = new Display();
  Shell shell = new Shell(display);
  public Drawings() {
    shell.setLayout(new FillLayout());
    
    Canvas canvas = new Canvas(shell, SWT.BORDER);
    canvas.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
    
    canvas.addPaintListener(new PaintListener() {
      public void paintControl(PaintEvent e) {
        
//        e.gc.drawString("SWT.LINE_SOLID (default)", 10, 10);
//        e.gc.drawString("SWT.LINE_DASH", 10, 30);
//        e.gc.drawString("SWT.LINE_DOT", 10, 50);
//        e.gc.drawString("SWT.LINE_DASHDOT", 10, 70);
//        e.gc.drawString("SWT.LINE_DASHDOTDOT", 10, 90);
//        e.gc.drawString("Line width = 1 (default)", 10, 120);
//        e.gc.drawString("Line width = 3", 10, 140);
//        
//        int start = 150;
//        e.gc.setLineWidth(1);
//        e.gc.setLineStyle(SWT.LINE_SOLID);
//        e.gc.drawLine(start, 15, start + 200, 15);
//        e.gc.setLineStyle(SWT.LINE_DASH);
//        e.gc.drawLine(start, 35, start + 200, 35);
//        e.gc.setLineStyle(SWT.LINE_DOT);
//        e.gc.drawLine(start, 55, start + 200, 55);
//        e.gc.setLineStyle(SWT.LINE_DASHDOT);
//        e.gc.drawLine(start, 75, start + 200, 75);
//        e.gc.setLineStyle(SWT.LINE_DASHDOTDOT);
//        e.gc.drawLine(start, 95, start + 200, 95);
//        
//        e.gc.setLineStyle(SWT.LINE_SOLID);
//        e.gc.drawLine(start, 125, start + 200, 125);
//        e.gc.setLineWidth(3);
//        e.gc.drawLine(start, 145, start + 200, 145);
        
        
//        int[] points = new int[3 * 2];
//        points[0] = 10; // The point at the top. 
//        points[1] = 10;
//        
//        points[2] = 10; // The point at the left bottom.
//        points[3] = 100;
//        
//        points[4] = 100; // the point at the right bottom
//        points[5] = 100;
//        
//        //e.gc.drawPolyline(points);
        
        e.gc.setLineStyle(SWT.LINE_SOLID);
        e.gc.setBackground(display.getSystemColor(SWT.COLOR_DARK_GREEN));
        e.gc.fillArc(10, 10, 200, 100, 0, -90);
        e.gc.setLineStyle(SWT.LINE_DOT);
        e.gc.drawLine(0, 60, 220, 60);
        e.gc.drawLine(110, 0, 110, 120);
      }
    });
    
    shell.pack();
    shell.open();
    //textUser.forceFocus();
    // Set up the event loop.
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        // If no more entries in event queue
        display.sleep();
      }
    }
    display.dispose();
  }
  private void init() {
  }
  public static void main(String[] args) {
    new Drawings();
  }
}