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