Results 1 to 1 of 1
-
How to Draw Round Rectangles in SWT
Java Code:import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; public class RoundRectangleExample { private Text txtArcWidth = null; private Text txtArcHeight = null; /** * Runs the application */ public void run() { Display display = new Display(); Shell shell = new Shell(display); shell.setText("RoundRectangle Example"); createContents(shell); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } /** * Creates the main window's contents * * @param shell the main window */ private void createContents(Shell shell) { shell.setLayout(new FillLayout(SWT.VERTICAL)); // Create the composite that holds the input fields Composite widgetComposite = new Composite(shell, SWT.NONE); widgetComposite.setLayout(new GridLayout(2, false)); // Create the input fields new Label(widgetComposite, SWT.NONE).setText("Arc Width:"); txtArcWidth = new Text(widgetComposite, SWT.BORDER); new Label(widgetComposite, SWT.NONE).setText("Arc Height"); txtArcHeight = new Text(widgetComposite, SWT.BORDER); // Create the button that launches the redraw Button button = new Button(widgetComposite, SWT.PUSH); button.setText("Redraw"); shell.setDefaultButton(button); // Create the canvas to draw the round rectangle on final Canvas drawingCanvas = new Canvas(shell, SWT.NONE); drawingCanvas.addPaintListener(new RoundRectangleExamplePaintListener()); // Add a handler to redraw the round rectangle when pressed button.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { drawingCanvas.redraw(); } }); } /** * This class gets the user input and draws the requested round rectangle */ private class RoundRectangleExamplePaintListener implements PaintListener { public void paintControl(PaintEvent e) { // Get the canvas for drawing and its width and height Canvas canvas = (Canvas) e.widget; int x = canvas.getBounds().width; int y = canvas.getBounds().height; // Determine user input, defaulting everything to zero. // Any blank fields are converted to zero int arcWidth = 0; int arcHeight = 0; try { arcWidth = txtArcWidth.getText().length() == 0 ? 0 : Integer .parseInt(txtArcWidth.getText()); arcHeight = txtArcWidth.getText().length() == 0 ? 0 : Integer .parseInt(txtArcHeight.getText()); } catch (NumberFormatException ex) { // Any problems, set them both to zero arcWidth = 0; arcHeight = 0; } // Set the line width e.gc.setLineWidth(4); // Draw the round rectangle e.gc.drawRoundRectangle(10, 10, x - 20, y - 20, arcWidth, arcHeight); } } /** * The application entry point * * @param args the command line arguments */ public static void main(String[] args) { new RoundRectangleExample().run(); } }
Similar Threads
-
round to two decimal places
By javaMike in forum New To JavaReplies: 3Last Post: 12-24-2011, 03:01 AM -
How to Draw Arc in Java
By Java Tip in forum java.awtReplies: 0Last Post: 06-24-2008, 12:12 AM -
Round GradientPaint Fill demo
By Java Tip in forum java.awtReplies: 0Last Post: 06-21-2008, 09:49 PM -
help me draw... please...
By kureikougaiji in forum New To JavaReplies: 1Last Post: 01-28-2008, 01:22 PM -
How to round a double?
By Valeriano in forum New To JavaReplies: 1Last Post: 05-31-2007, 04:50 PM
Bookmarks