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

avec Java Discussion :

ActionListener et AbstractButton


Sujet :

avec Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 93
    Par défaut ActionListener et AbstractButton
    Bonjour,

    Tout d'abord desole pour les accents mais le forum n'accepte pas les raccourcies qwerty de MAC :/

    Pour l'un de mes projets je dois modifier un programme test que fournie la societe Epiphan que l'on peut trouver a cette adresse :
    http://www.epiphan.com/products/fram...b/development/

    Leur programme test permet d'afficher l'affichage d'un autre ordinateur sur le mien grace a un convertisseur VGA/USB
    Je dois le modifier pour enregistrer ces images toutes les 3 secondes et en faire un film a minuit mais bon probleme se situe bien en amont :

    J'ai ajoute un bouton dans une classe et je desire que le label qui affiche l'image ecoute mon bouton d'ou la ligne de code suivante :
    JButton Button = new JButton("Enregistrer");
    Button.addActionListener(label);
    Eclipse me marque alors l'erreur suivante :

    The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments (JFrame)
    Deja je ne comprends pas pourquoi il me dit que c'est un abstractButton alors qu'il n'appartient pas a une classe heritant de abstract...

    Quelles sont les changements que je dois inclure pour resoudre cette erreur ?

    Merci d'avance et encore desole pour les accents.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Ton JButton est un AbstractButton, mais le problème ne vient pas de là.
    Ton label est une JFrame.
    Hors, le paramètre que l'on attend dans la méthode addActionListener() doit être de type ActionListener, afin d'être certain que la méthode actionPerformed() soit disponible.

    Le plus simple pour toi, c'est que ta JFrame implémente ActionListener.

    Eclipse te demandera alors d'ajouter la méthode actionPerformed() qui sera lancé lors de l'appuie du bouton.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 93
    Par défaut
    Merci ca a l'air de marcher.

    Pour ceux qui auront besoin voila ce que j'ai changé grâce aux conseils de Caalador :

    J'ai créé une nouvelle classe Fenêtre :
    package com.epiphan.vga2usb.test;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.JFrame;

    public class Fenetre extends JFrame implements ActionListener{

    public Fenetre(String title){
    this.setTitle("title");
    }

    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    }
    }
    Sans oublier de changer dans les autres classe tout les JFrame par Fenetre.

    Je risque sûrement de revenir pour d'autres questions de ce style.

    A bientôt.

    PS: mes accents refonctionnent :/ Peut être que je m'étais simplement trompé de raccourcie.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Salut, si tu ne changes que cela dans ta JFrame, tu peux aussi créer une class dédiée à l'ActionListener.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public Class MonActionListener implements ActionListener {
      public void actionPerformed(ActionEvent e){}
    }
     
    // Puis dans ton code :
    bouton.addActionListener(new MonActionListener());
     
    // ou alors
    MonActionListener listener = new MonActionListener();
    bouton1.addActionListener(listener);
    bouton2.addActionListener(listener);
    Ou alors fabriquer ton ActionListener directement dans la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bouton.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
      }
    });
    Si tu n'as pas l'habitude des Listener, je te conseil tout de même d'implementer ta JFrame directement, car ce sera plus simple pour toi d'avoir accés aux composants de ta fenêtre depuis ton listener.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 93
    Par défaut
    Salut,

    Merci pour les indications, je crois avoir fait ce que tu as dit enfin me souvient plus trop j'ai pas mal changé de code hier et aujourd'hui c'est férié au Québec .

    Et maintenant j'obtiens un programme qui se lance et me permet en cliquant sur un bouton d'enregistrer l'affichage de l'autre ordinateur.

    Donc va bien pour le moment je vais pouvoir me mettre à programmer le reste mais en prévision j'ai une petite question qui me taraude et que je n'ai pas trouvé sur google.

    Comment est ce qu'à partir de plusieurs images je peux réussir à faire une vidéo ?

    A bientôt

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Ca dépend de ce que tu veux faire comme type de vidéo, mais tu as plein de petites appli qui permettent de faire une anim avec plusieurs photos. Sinon les OS fournissent des appli style Media Movie Maker ou iMovie qui permettent aussi de le faire. Photoshop le fait, Gimp doit pouvoir le faire...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 93
    Par défaut
    J'aimerai tout faire sur un seul programme pour que ça soit le plus transparent possible donc tout en java si possible.

    Ce programme ne me servira pas pour moi mais pour faire des dosimétristes et radiophysiciens, donc il faudrait qu'il n'ai pas besoin d'interéagir plus que nécessaire (c'est à dire lancer le programme et aller voir la vidéo si besoin)

    Sinon je me fiche du type du vidéo, il suffit qu'ensuite elles soient suffisamment lisible pour pouvoir voir les erreurs et les paramètres qui ont amené à ces erreurs. Par contre il faut savoir que les vidéos dureront au max bah 24*3600/3 secondes... enfin surement moins mais je vise le pire des cas... Donc de une la reconstitution risque d'être longue mais aussi nécessité beaucoup de mémoire.

    Pienpien

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    8 heures !?! humm cela va être lourd...
    - Donc, tu vas faire des "captures d'écran"
    - Enregistrer ces images dans un dossier
    - Et maintenant tu cherches comment en faire une vidéo qui sera lu dans ton application directement...

    C'est ce que tu souhaites en gros ?
    Sinon, au lieu de fabriquer une vidéo de toutes tes images... pkoi ne pas les afficher comme un diaporama ?? Un thread qui réactualise l'affichage avec une nouvelle image..
    Si tu nommes correctement tes captures (date / heure) tu pourrais même demander un visionnage de tel heure à tel heure.

    Sinon pour fabriquer un fichier vidéo, regarde vers JMF

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 93
    Par défaut
    Salut,

    Encore merci du temps que tu passes a m'aider

    Après concertation avec mon superviseur on a décidé de changer un peu d'optique :

    1)On va enregistrer une image toute les 3 secondes seulement si celle ci change. On pense que cela permettra d'economiser pas mal d'espace.
    Les images seront enregistrer sur le reseau pour pouvoir être récupéré ensuite par d'autre application

    2) On va peut être plutôt utiliser RealBasic pour faire la vidéo. Le programme RealBasic sera lance a partir d'un autre PC.

    3)La vidéo ne sera lu par aucune application, il y aura un lien sur un wiki pour aller la récupérer.


    J'ai donc quelques questions encore,pour l'égalité des images ca doit pas être bien dur a trouver donc je vais chercher et je reviendrai si je galère.

    Un pc devra capturer plusieurs affichages, donc soit je me débrouille pour que l'application puisse capter toutes les images soit je lance plusieurs fois l'application, une fois par affichage a récupérer.
    Est ce qu'il n'y aura pas des problèmes de thread ?

    Je pense que c'est tout!

    Pienpien


    Edit1 :
    En fin de compte j'ai un petit probleme, j'utilise la méthode explicitée dans ce topic http://www.developpez.net/forums/d34...arer-2-images/
    mais la réponse est toujours false, j'ai testé et le programme marche bien, c'est seulement qu'il doit y avoir certains pixels de différents entre les images soit lors de l'affichage ou lors du passage dans le convertisseur.
    Je ne vois donc pas trop quoi faire et mettre un intervalle de tolérence me semble assez risqué.

Discussions similaires

  1. [ActionListener] Evénement sur tableau de boutons
    Par frouge dans le forum Composants
    Réponses: 5
    Dernier message: 08/10/2011, 02h44
  2. Récupérer la fenetre principale d'un actionlistener
    Par Cyborg289 dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 22/01/2008, 15h00
  3. Réponses: 2
    Dernier message: 04/12/2005, 11h44
  4. [Jgraph] Utiliser l'actionListener
    Par danje dans le forum 2D
    Réponses: 2
    Dernier message: 29/11/2005, 18h03
  5. [débutant][swing][JButton][ActionListener]
    Par cmoa59 dans le forum Composants
    Réponses: 6
    Dernier message: 25/05/2005, 15h19

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