cs_Blooop
Messages postés6Date d'inscriptionmardi 9 mai 2006StatutMembreDernière intervention 5 septembre 2006
-
6 juin 2006 à 16:18
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 2010
-
13 juin 2006 à 14:26
Salut,
(bon j'ai contourné mon pb de constructeur invisible, je suis passé sous windows et j'utilise la version 2.6 de gtk...)
j'arrive pas a utiliser les fonctions de dessin et je trouve pas d'exemple
windowTremie = new Bitmap(EscaBreizh.drawingAreaTremie.getHandle());
GC gc = new GC(windowTremie.getHandle());
windowTremie.drawLine(gc,1,1,100,100);
voila les 3 lignes qui me posent pb, j'ai essayé tout un tas de combinaison, j'ai essayer avec windowTremie en tant que gtk window, en tant que pixmap
et j'obtient ça
(java-gnome:1204): Gdk-CRITICAL **: gdk_draw_line: assertion `GDK_IS_DRAWABLE (drawable)' failed
si qlq un avait un bout de programme avec les declarations, initialisations et un peu d'utilisation, ça m'aiderai deja
Merci
cs_Blooop
Messages postés6Date d'inscriptionmardi 9 mai 2006StatutMembreDernière intervention 5 septembre 2006 13 juin 2006 à 12:01
Bon ben juste pour info :
on utilise une DrawingArea mais elle n'est pas utilisable en tant que telle, il faut créer une classe qui herite du DrawingArea et qui implémente ExposeListener pour le rafraichissement
exemple :
public class Tremie extends DrawingArea implements ExposeListener{
fonctions diverses...
//ma fonction pour passer de mm en pixel et afficher mon rectangle
public boolean exposeEvent(ExposeEvent event){
System.out.println("event : "+event.getType().getName());
org.gnu.gdk.Window GdkWindow = this.getWindow();
int HautFen = GdkWindow.getHeight(); //Recuperation de la hauteur de la fenetre
int LargFen = GdkWindow.getWidth(); //Recuperation de la largeur de la fenetre
GC gc = new GC(GdkWindow); //GC permet de donner les cracteristiques de la zone de dessin
gc.setBackground(Color.WHITE);
GdkWindow.drawRectangle(gc, false, 0, 0, (int) lrg - 1, (int) lng - 1);
return true;
}
}
par la suite, on ajoutera l'objet tremie a une fenetre de l'interface :
ScrolledWindow scrolledWindowtmp = new ScrolledWindow();
scrolledWindowtmp.addWithViewport((DrawingArea) escalier.ensTremies.elementAt(i)); //mon objet tremie se trouve dans un vector
cs_Blooop
Messages postés6Date d'inscriptionmardi 9 mai 2006StatutMembreDernière intervention 5 septembre 2006 7 juin 2006 à 10:58
j'ai prit la suite d'une application dont les interfaces sont faites avec glade, donc en gtk
apres je connais pas toutes les subtilités entre gtk et swing mais il semble plus simple de developper une interface avec gtk... mis a part mon souci