Friday, August 1, 2014

swt canvas.redraw doesn't work for clicking button
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































the code is :































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.SWT;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.events.PaintEvent;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.events.PaintListener;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.events.SelectionAdapter;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.events.SelectionEvent;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.layout.GridData;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.layout.GridLayout;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.widgets.Button;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.widgets.Canvas;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.widgets.Display;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































import org.eclipse.swt.widgets.Shell;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































public class caseButton {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































private Shell shell;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































public static void main(String[] args) {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































try {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































caseButton window = new caseButton();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































window.open();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































} catch (Exception e) {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































e.printStackTrace();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































}































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































}
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































/**































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































* Open the window.































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































*/































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































public void open() {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Display display = Display.getDefault();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































createContents();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































shell.open();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































shell.layout();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































while (!shell.isDisposed()) {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































if (!display.readAndDispatch()) {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































display.sleep();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































}































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































}































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































}































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































/**































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































* Create contents of the window.































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































*/































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































protected void createContents() {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































shell = new Shell();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































shell.setText("SWT Application");































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































GridLayout gridLayout = new GridLayout();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridLayout.numColumns = 1;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridLayout.marginWidth = 0;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridLayout.marginHeight = 0;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridLayout.verticalSpacing = 4;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridLayout.makeColumnsEqualWidth=false;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































shell.setLayout(gridLayout);
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































GridData gridData=new GridData();































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridData.verticalSpan = 0;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridData.horizontalSpan = 3;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridData.verticalAlignment = GridData.FILL;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridData.grabExcessVerticalSpace= true;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridData.horizontalAlignment = GridData.FILL;































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































gridData.grabExcessHorizontalSpace = true;
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































final Button button = new Button(shell, SWT.PUSH);































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































button.setText("draw Rectangle");
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































final Canvas canvas = new Canvas(shell, SWT.NONE);































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































canvas.setLayoutData(gridData);
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































canvas.addPaintListener(new PaintListener() {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































public void paintControl(PaintEvent e) {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































e.gc.drawRoundRectangle(10, 10, 180, 80, 10, 10);































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































}































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































});































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































button.addSelectionListener(new SelectionAdapter() {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































@Override































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































public void widgetSelected(SelectionEvent e) {































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































System.out.println("buttton_start ");































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































canvas.redraw(); // it can' work































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































System.out.println("buttton_end ");
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































}































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































});































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































}
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































}
































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































the question is : when I click this button, it will print "buttton_start" and "buttton_end", the "canvas.redraw()" can't work. I don't know the reason , who can help me? thanks































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































No comments:

Post a Comment