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 :

Comment modifier une BufferedImage alimenté par un Thread


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut Comment modifier une BufferedImage alimenté par un Thread
    Salut je suis devant la problematique suivante:

    j'ai un thread qui reaffiche a chaque fois une bufferedimage sur un jpanel moyennant un objet graphics2D ...je veux donner a l'utilisateur la possibilite de faire les possibilite suivante:

    - reset() : effacer l'image actuelle et la remplacer par un fond noir ( stopper le thread aussi bienentendu)

    j'ai essayé ce bout de code mais ca marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
     static Graphics2D g  ;
      private BufferedImage bimg;
      private Graphics2D big;
    ...
    public synchronized void  Reset()
     
            {
            	this.stop();
            	// effacer la video actuelle       	      	 
     
            	// big.setColor(Color.black)  ;
            	// big.clearRect(0,0,1010,1010);
            	 //g.drawRect(0,0,1010,1010);
            	//g.drawRect(0,0,1010,1010);
            	// g.setComposite(AlphaComposite.Clear);
            	// g.fillRect(0, 0, 1010, 1010);
     
            	big.setBackground(getBackground());        	 
                big.clearRect(0,0,1010,1010); // tailel du rectabgle de fond
                g.drawImage(bimg,0,0,this);
     
     
     
            }
     
    public synchronized void stop() {
            	System.out.println("Arrêt de la récuperation de la video en cours...");
                thread = null;
                notify();
            }

    comment remedier a ca !! je veux arreter le thread et remplacer l'image actuelel par un fond noir

    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par jlassiramzy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public synchronized void stop() {
      if (thread != null) {
        System.out.println("Arrêt de la récuperation de la video en cours...");
        thread.interrupt();
        thread = null;
        notify();
      }
    }
    Ensuite, qu'est ce que g ? Je te rappelle que pour dessiner dans un JComponent tu dois surcharger paintComponent(Graphics g) et non pas peindre directement dans le graphics retourne par getGraphics(). Dans ce cas reset() appellerai juste repaint() apres l'arret de la thread et le remplissage de l'image en noir.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    oui mais si j'ajoute l'appel a repaint() ca va executer le bout de code qui dessine normalement mon image ? jj'ai essayé mais ca donne rien !! j'ai juste une image stoppé et pas de fond noir !!

  4. #4
    Membre expérimenté
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Par défaut
    regarde ma réponse sur ce post.

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/04/2011, 12h10
  2. Réponses: 9
    Dernier message: 05/01/2006, 14h01
  3. Réponses: 1
    Dernier message: 01/11/2005, 02h29
  4. Comment modifier une page affichée dans un TWebBrowser ?
    Par dreamincoco dans le forum Composants VCL
    Réponses: 7
    Dernier message: 24/03/2005, 14h07
  5. comment modifier une texture?
    Par tibyann dans le forum DirectX
    Réponses: 6
    Dernier message: 16/06/2004, 15h27

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