[java] afficher une image avec SWT

afficher une image avec SWT [java] - Java - Programmation

Marsh Posté le 18-07-2005 à 12:32:26    

Je suis en train de recoder un code de swing/awt en swt mais j'ai meme des problemes sur les exemple les plus simples  
 
Dans mon programme rien ne s'affiche et je ne vois pas trouver d'ou vient le probleme ?
 
 

Code :
  1. import org.eclipse.swt.widgets.*;
  2. import org.eclipse.swt.*;
  3. import org.eclipse.swt.graphics.* ;
  4. public class test {
  5. public static void main (String str[]) {
  6.  Display display = new Display();
  7.  Shell shell = new Shell(display);
  8.  try {
  9.     Image img = new Image(display,  "C:/.../image.gif" );
  10.     GC gc = new GC(shell);
  11.     gc.drawImage(img, 0, 0);
  12.     gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
  13.     gc.drawText("ok",0,0,true);
  14.  }
  15.  catch (Exception e) { e.printStackTrace() ; }
  16.  shell.pack();
  17.  shell.open();
  18.  while(!shell.isDisposed())
  19.   if(!display.readAndDispatch())
  20.    display.sleep();
  21.  display.dispose();
  22. }
  23. }


 
normalement le programme devrait m'afficher une image dans une fentre ou m'afficher un message d'erreur
 
la je n'ai ni erreurs, j'ai juste une petite fentre vide ..


Message édité par ali0baba le 20-07-2005 à 17:31:19
Reply

Marsh Posté le 18-07-2005 à 12:32:26   

Reply

Marsh Posté le 18-07-2005 à 13:43:41    

En faite, si on remplace la ligne : GC gc = new GC(shell);  
par celle la : GC gc = new GC(display);
l'image s'affiche mais pas dans la fenetre et apres si on deplace une autre fenetre de windows elle disparait ...


Message édité par ali0baba le 18-07-2005 à 13:45:19
Reply

Marsh Posté le 18-07-2005 à 14:52:27    

Un autre probleme : la fonction setsize ne fonctionne pas et la le code est tellement simple que je vois pas le probleme  :pt1cable:  
 
mon code :

Code :
  1. import org.eclipse.swt.widgets.*;
  2. import org.eclipse.swt.*;
  3. public class aeff {
  4. public static void main (String str[]) {
  5.  Display display = new Display();
  6.  Shell shell = new Shell(display , SWT.BORDER | SWT.CLOSE | SWT.MAX);
  7.  shell.setLocation(100, 100);
  8.         /*===>*/ shell.setSize(300, 300);
  9.  shell.pack();
  10.  shell.open();
  11.  while(!shell.isDisposed())
  12.   if(!display.readAndDispatch())
  13.    display.sleep();
  14.  display.dispose();
  15. }
  16. }

Reply

Marsh Posté le 19-07-2005 à 16:57:00    


 
personne ?

Reply

Marsh Posté le 20-07-2005 à 15:36:48    

fais ton setSize juste apres le shell.pack();

Reply

Marsh Posté le 20-07-2005 à 17:28:25    

cymp a écrit :

fais ton setSize juste apres le shell.pack();


 
 
MERCI ,en le mettant apres ca marche  :)  
Sinon ta une idee pourquoi mon image ne s'affiche pas ?
Je pense que ca vient du fait que je n'ai pas spécifier une taille a l'image
mais il n'y a pas de "setSize" à la classe GC ni à la classe Image ?

Reply

Marsh Posté le 21-07-2005 à 14:02:03    

tu peux faire sans GC(ca me parait bourrin d'utiliser GC quand meme), en te servant d'un Shell(Display.getDefault(), SWT.NONE) et d'un canvas(Shell, SWT.NONE). Ensuite tu effectues un drawImage(tonImage) dans le canvas et le tour est joue.
 


Message édité par cymp le 21-07-2005 à 14:06:56
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed