Dessiner avec gdk

Résolu/Fermé
cs_Blooop Messages postés 6 Date d'inscription mardi 9 mai 2006 Statut Membre Dernière intervention 5 septembre 2006 - 6 juin 2006 à 16:18
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 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

5 réponses

cs_Blooop Messages postés 6 Date d'inscription mardi 9 mai 2006 Statut Membre Derniè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
        
            //Calcul du facteur d'echelle
            EscaBreizh.ech = (double) LargFen / largeur.doubleValue();
            double d = (double) HautFen / longueur.doubleValue();
            if (d < EscaBreizh.ech){
                EscaBreizh.ech = d;
            }
            double lrg = largeur.doubleValue() * EscaBreizh.ech;
            double lng = longueur.doubleValue() * EscaBreizh.ech;

            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

Voila merci quand meme.
3
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
6 juin 2006 à 20:05
heu une question qui n'as rien a voir ac ton pb
pourquoi n'utilise tu pas swing ?

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
cs_Blooop Messages postés 6 Date d'inscription mardi 9 mai 2006 Statut Membre Derniè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
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
7 juin 2006 à 14:34
si tu le dit ...
je ne connais pas gtk je ne peut donc pas t'aider

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
13 juin 2006 à 14:26
merci ca pourras servir un de ces 4
close
"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Rejoignez-nous