Avec Graphics.drawString( string, x, y), tu peux écrire ce que tu veux.
Il y a des exemples dans l'une des discussions que je t'avais données au début.
Avec Graphics.drawString( string, x, y), tu peux écrire ce que tu veux.
Il y a des exemples dans l'une des discussions que je t'avais données au début.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Je vais commencer par le plus simple :
Tu te rends compte que tu enregistres des écouteurs d'évenements dans une méthode destinée à dessiner le composant ? Une méthode appelée plusieurs fois, à chaque fois qu'il est nécessaire de dessiner le composant... tu vois ce où je veux en venir ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 protected void paintComponent(Graphics g) { addMouseListener(this); addMouseMotionListener(this);
Le problème c'est que tous le reste du code est du même acabit : un affreux fatras de mélanges de trucs dans tous les sens et c'est horriblement fatiguant de ne serait-ce que le lire, alors le comprendre... sans parler du temps à passer. Du coup, ta question d'intégration, qui est vague en elle-même (intégrer comment, où, pour faire quoi ?), j'ai du mal à extrapoler ne serait-ce qu'une possibilité de le faire...
Il faut absolument refactoriser, faire des classes séparées, avec des traitements (méthodes) séparées, isolées, sans inter-dépendances spaghettis... après, je pourrais peut-être y entrevoir une possibilité d'intégration. Là, pour l'instant, c'est comme si tu avais ton mobilier en tas dans ta cour, et que tu me demandais d'y intégrer une plante verte.
Ah, autre chose : je sais bien que (presque) tous les exemples d'interfaces graphiques, même la plupart des tutoriels ont l'habitude de proposer i'implémentation des interfaces d'écouteur d'événement dans la classe principale, ou une classe de groupement (genre un JPanel), mais il ne faut pas faire ça. Avant Java 8, il vaut mieux isoler le code dans des classes à part dédiées (interne éventuellement pour simplifier l'accès aux attributs de la classe principale), en particulier quand on a beaucoup d'écouteurs, parce que ça devient illisible, ça donne des maux de tête, voire pire. Avec Java 8 et les expressions lambdas, on peut tirer le meilleur des 2 : ne pas faire plein de classes d'écouteur, avoir des méthodes sémantiques (métiers, fonctionnelles...) plutôt que techniques (du genre changeSeuil() au lieu de stateChange()), et ne pas avoir une ribambelles d'interfaces implémentées dans une classe, avec des dizaines de if ( e.getSource()== ... imbitables.
[EDIT] j'oubiais un truc. A part lorsqu'on fait des composants personnalisés, il est la plupart du temps inutile d'utiliser MouseListener ou MouseMotionListener : il y a toujours des écouteurs spécialisés/adaptés plus simples (ActionListeenr, ListSelectionListener, ChangeListener...).
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Bonjour,
Je reviens vers vous pour une dernière fois dans ce sujet. On m'a demandé de remplacer les 2 images avec quoi on calcule l'histogramme avec la position i et j d'une seul image et calculer l'histogramme à partir de celle ci du coup je mets à la place de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int pixel = sImg.getRGB(i, j); int gray = ((pixel >> 16) & 0xFF) >> 3; int pixel2 = hImg.getRGB(i, j); int gray2 = ((pixel2 >> 16) & 0xFF) >> 3;pouvez vous corriger mon erreur parceque là appremment j'obtiens pas l'histogramme exact
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int pixel = monImage.getRGB(i, 0); int pixel2 = monImage.getRGB(0, j);
Le résultat doit être di j'ai une image toute noire et une bande rouge au milieu, l'histogramme doit avoir des valeurs au milieu (la position de la bande) et rien d'autres. Oui je sais que je dois pas faire de longues calcul dans paintComponent je vais modifier ça aussi
Merci !
Je n'ai aucune idée de quoi tu parles et ça ne concerne pas Java tes questions, mais des problèmes d'algorithmie et de traitement d'images. Pose ces questions dans la rubrique dédiée (http://www.developpez.net/forums/f64...ment-d-images/ ou http://algo.developpez.com/). Quand tu sauras quoi faire en dehors de toute notion de langage, tu pourras essayer de le traduire en Java, et là, si tu as des difficultés tu pourras venir demander ici de l'aide.
Tout ce que je peux dire, c'est qu'avant tu combinais les cinq bits de poids fort de la composante rouge du même pixel (s'entend aux mêmes coordonnées) de deux images différentes, et que maintenant (je suppose que tu n'a pas viré le traitement gray = ((pixel >> 16) & 0xFF) >> 3; contrairement à ce que ton code partiel semble indiquer) tu combines les cinq bits de poids fort de la première ligne et de la première colonne de pixels d'une même image, combinés 2 à 2 de manière à ce que la colonne et la ligne soit les mêmes. Si ton image est bordée de noir, je ne vois pas comment tu pourrais obtenir autre chose que du noir. En gros, tu ne traites par cette sélection que les pixels situés dans la bordure haute (j=0) et la bordure gauche (i=0). Tout le reste de l'image est ignoré. Ceci me semble douteux, mais comme je n'ai aucune idée de ce qu'est un histogramme bilinéraire d'une image, comme celui de deux d'ailleurs, je ne sais pas comment te dire ce que tu dois faire.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager