IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Peindre en dehors de paintComponent, c'est mal.


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2010
    Messages : 6
    Par défaut Peindre en dehors de paintComponent, c'est mal.
    Bonjour,

    J'ai un petit problème avec Swing, et après quelques recherches infructueuses je me tourne vers vous, mon dernier espoir
    Voilà, je suis en train d'essayer de faire un outil de sélection un peu général pour Swing, que je pourrais intégrer à n'importe quel JPanel, et qui me permettrait donc de sélectionner n'importe quel composant à l'intérieur de ce panel. En gros ça fonctionnerait de la même manière que l'outil de sélection sur le bureau de Windows : avec un clique sur un composant on le sélectionne, avec un "drag" de la souris on peut en sélectionner plusieurs, etc.
    Je pense que j'ai fais le gros du travail, mais il me reste un petit problème : dessiner le petit rectangle de sélection quand on "drag" la souris, et les rectangles autour des composants sélectionnés. Puisque mon code doit être un peu générique, je ne peux pas redéfinir la méthode paintComponent des panels auquels j'applique mon outil...
    Pour le moment ce que je fais ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private void paintSelectionStuff() {
     
    	SwingUtilities.invokeLater(new Runnable() {
    		@Override
    		public void run() {
    			panel.paintImmediately(panel.getBounds());
    			Graphics g = panel.getGraphics();
    			drawRectanglesOnGraphics(g);
    	});
    }
    C'est-à-dire que dans ma classe "SelectionTool" j'ai cette méthode que j'appelle plus ou moins à chaque fois que j'effectue une action avec ma souris. Si je suis en train de "dragger" ma souris je dessine le rectangle de sélection, si un composant est sélectionné, je dessine aussi un rectangle autour de lui. J'ai conscience que je ne suis pas sensé dessiner quoi que ce soit dans mon panel en dehors de sa méthode paintComponent(), mais je ne vois pas du tout comment faire autrement.
    Sous cette forme, l'outil fonctionne, m'affiche bien les rectangles, mais j'ai une espèce de clipping qui fait que mes rectangles apparaissent et disparaissent sans arrêt, c'est assez moche. Je sens bien que ça se produit parce que je ne fais pas les choses comme il faut...
    Bref si quelqu'un a des suggestions, elles seraient les bienvenues !

    Merci

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu devrais dessiner sur le GlassPane, c'est fait pour ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre habitué
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2010
    Messages : 6
    Par défaut
    Merci, je n'y avais pas du tout pensé !
    Je teste ça, et si j'arrive à mes fins je passe ce sujet en résolu. Comme quoi ça vaut toujours le coup d'avoir un avis extérieur

  4. #4
    Membre habitué
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2010
    Messages : 6
    Par défaut
    Ce n'est pas terminé, mais ça marche !
    Merci beaucoup !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. les caractères spéciaux dans l'url, c'est mal !
    Par _gargamel_ dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/05/2007, 16h03
  2. Réponses: 4
    Dernier message: 12/07/2006, 18h39
  3. C'est moi ou le JSplitPane est mal conçu ?
    Par soad dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 25/06/2006, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo