Mega Code Archive

 
Categories / Java Tutorial / SWT 2D Graphics
 

Graphics

The GC class (short for graphical context) forms the core of SWT's graphics engine. GC offers all the methods required for drawing shapes, text, and images. You can draw on Controls, Devices, or other Images. Generally, drawing lifecycles consists of the following: Creating or obtaining a GC to draw on the desired target Drawing If you created the GC, disposing the GC In code, the drawing lifecycle looks like this: GC gc = new GC(display); gc.drawRectangle(...); gc.drawText(...); gc.drawImage(...); gc.dispose(); You generally put drawing code in a paint handler, like this: import org.eclipse.swt.SWT; import org.eclipse.swt.events.PaintEvent; import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.graphics.GC; 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 GCCreateFrom {   public static void main(String[] args) {     Display display = new Display();     Shell shell = new Shell(display);     shell.setText("Canvas Example");     shell.setLayout(new FillLayout());     final Canvas canvas = new Canvas(shell, SWT.NONE);     canvas.addPaintListener(new PaintListener() {       public void paintControl(PaintEvent e) {         GC gc = new GC(canvas);         gc.setForeground(e.display.getSystemColor(SWT.COLOR_RED));         gc.drawFocus(5, 5, 200, 10);         gc.drawText("You can draw text directly on a canvas", 60, 60);         gc.dispose();       }     });     shell.open();     while (!shell.isDisposed()) {       if (!display.readAndDispatch()) {         display.sleep();       }     }     display.dispose();   } }