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 :

Drag'n drop pour automatiser des tests


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 29
    Points : 23
    Points
    23
    Par défaut Drag'n drop pour automatiser des tests
    Bonjour à tous,

    ma mission, que je le veuille ou non, est de "customiser" Netbeans afin d'y integrer une petite interface graphique. Cette interface doit aider le développeur dans la rédaction de jeux de tests. Lesdits tests sont des tests fest (http://easytesting.org/swing/wiki/pmwiki.php) limités aux composants graphiques swing.

    Donc dans l'ideal ce que je souhaiterai, c'est de pouvoir drag'n dropper n'importe quel composant graphique swing deja integré dans l'IHM à tester, dans une zone de text, et d'obtenir un chti bout de code fest.

    Je m'explique :

    disons un JButton ayant pour attribut name "btn1", hé ben si je le drop dans ma zone de text, je souhaiterais obtenir "this.window.button("btn1")".
    Autre exemple, pour un JTextField ayant pour attribut name "tf1", drag drop tac je recupère "this.window.textfield("tf1")"

    ça veut dire que non seulement il faut que je récupère le nom (attribut name) du JComponent, mais aussi sa classe afin d'utiliser la methode adequat sur le this.window

    pour l'instant, j'arrive juste à récuperer l'attribut name en utilisant un TransferHandler.

    here is da code :
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class SwingDragDrop
    {
    	JTextField txtField;
    	JButton btn;
     
    	public static void main(String[] args)
    	{
    		SwingDragDrop sdd = new SwingDragDrop();
    	}
     
    	public SwingDragDrop()
    	{
    	    JFrame frame = new JFrame();
    	    txtField = new JTextField(20);
    	    btn = new JButton("un joli bouton");
    	    btn.setName("je suis le nom du bouton");
    	    btn.setTransferHandler(new TransferHandler("name"));
    	    MouseListener ml = new MouseAdapter()
    	    {
    	    	public void mousePressed(MouseEvent e)
    	    	{
    	    		JComponent jc = (JComponent)e.getSource();
    	    		TransferHandler th = jc.getTransferHandler();
    	    		th.exportAsDrag(jc, e, TransferHandler.COPY);
    	    	}
    	    };
    		btn.addMouseListener(ml);
     
     
    	    JPanel panel = new JPanel();
    	    panel.add(txtField);
    	    frame.add(btn, BorderLayout.SOUTH);
    	    frame.add(panel, BorderLayout.NORTH);
    	    frame.setSize(400, 100);
    	    frame.setVisible(true);
    	    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	    frame.setResizable(false);
    	}
    }
    Donc pour l'instant, quand je drop le bouton dans la JTextField, je récupere juste son nom, soit "je suis le nom du bouton".

    Merci d'avance à tous ceux qui se pencheront sur la question

    Ciaoo

  2. #2
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : juillet 2008
    Messages : 1 031
    Points : 1 534
    Points
    1 534
    Par défaut
    Pour récupérer la classe d'un composent tu peux toujours faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    btn = new JButton("un joli bouton");
    String classe = btn.getClass()+"";
    System.out.println(classe);
    le résultat sera : class javax.swing.JButton

    Après cela, il est facile de manipuler le String classe pour récupérer se qui t'intéresserais.

    Si j'ai bien compris ton problème bien sure
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    ben le truc c'est que j'essaye de passer la classe du composant graphique swing par le TransferHandler, ou trouver une astuce pour récuperer la classe ET l'attribut name avec un simple drag'n drop.

    Ensuite le top du top ça serait que ces 2 arguments soient mis sous la forme d'une chaine de caractere du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "this.window" + maClasse + "(" + attributName + ")"
    Anyway merci pour ta réponse

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/05/2017, 11h51
  2. logiciel pour automatiser des tests sur IHM
    Par aniz55 dans le forum IHM
    Réponses: 1
    Dernier message: 19/10/2007, 16h56
  3. Quel langage pour automatiser des calculs acoustiques ?
    Par michael.mytnik dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 04/01/2007, 19h51
  4. [SQL] Récupération éventuelle d'une variable pour faire des tests
    Par mougeole dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/05/2006, 14h56
  5. [Plugin] plugin eclipse pour automatiser les tests
    Par soulhouf dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 15/03/2006, 17h19

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