Bonjour.
Je suis complètement débutant dans le monde java.
Je chercher à créer une fenêtre dans laquelle un canvas prendrait toute la place cliente.
J'ai essayé le code suivant :
mais la zone cliente n'est pas redimensionnée en même temps que la fenêtre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 myPackage; /* * GC example snippet: capture a widget image with a GC * * For a list of all SWT example snippets see * http://www.eclipse.org/swt/snippets/ */ import org.eclipse.swt.*; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.widgets.*; public class Designer { public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); final Canvas canvas; canvas = new Canvas(shell, SWT.NONE); shell.addListener(SWT.RESIZE, new Listener(){ public void handleEvent(Event e) { canvas.setBounds(shell.getClientArea()); canvas.redraw(); } }); canvas.addPaintListener(new PaintListener() { public void paintControl(PaintEvent e) { e.gc.setBackground(new Color(display,new RGB(255,255,255))); e.gc.fillRectangle(canvas.getBounds()); } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } }
le listener n'est pas appelé lorsque je redimensionne la fenêtre.
Merci de votre aide.
Partager