Bonjour,
Je suis nouveau sous java et NetBeans7.3.1.
J'ai besoin pour une appli, de faire une copie d'un jLabel juste par glisser/deplacer ou au relachement de la souris.
J'ai aussi créé une classe Objet à qui on pourrait affecter un jLabel.
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
44
45
46
47
 
    private void initComponents() {
 
        jLabel1 = new javax.swing.JLabel();
 
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
        jLabel1.setIcon(new javax.swing.ImageIcon(CheminImages + "LedON.png")); // NOI18N
        jLabel1.setText("LED");
        jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                OnReleased(evt);
            }
        });
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(57, 57, 57)
                .addComponent(jLabel1)
                .addContainerGap(509, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(65, 65, 65)
                .addComponent(jLabel1)
                .addContainerGap(333, Short.MAX_VALUE))
        );
 
        jLabel1.getAccessibleContext().setAccessibleName("LED");
 
        pack();
    }// </editor-fold>                        
 
/* Methode s'executant au relachement de la souris */
    private void OnReleased(java.awt.event.MouseEvent evt) {                            
        // TODO add your handling code here:
        /* Creation d'un nouvel objet de type LED */
        JLabel jLabel2 = new JLabel("LED1");
        Objet LED1 = new Objet("LED1", CheminImages +"open.png", jLabel2/*new javax.swing.JLabel("LED1")*/);
        LED1.Display(this);
        //this.repaint(); 
        //this.revalidate();
    }
Ci-apres, le code de ma classe Objet:
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
44
 
public class Objet {
	/*private*/ String Name;
	/*private*/ String Path; 
        /*private*/ JLabel Image;
 
    /* constructor */
    public Objet(String Name, String Path, JLabel Image) {
        this.Name = Name;
        this.Path = Path;
        this.Image = Image;
    }
 
    /*
     * 
     */
    public void Init() {
        Image.addMouseMotionListener(new MouseAdapter() {
            public void mouseDragged(MouseEvent e) {
                //frame.setLayout(null);
                //Image.setLocation(e.getX(), e.getY());
            }
        });
 
        Image.addMouseListener(new MouseAdapter() {
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                OnReleased(evt);
            }
 
            private void OnReleased(MouseEvent e) {
                Image.setLocation(e.getX(), e.getY());
            }
        });
    }
 
    /*
     * 
     */
    public void Display(JFrame frame){
        frame.getContentPane().add(Image, BorderLayout.EAST);
        Image.setIcon(new ImageIcon(Path));         
        Image.setVisible(true);
    }
}
Mon probleme, c'est que le jLabel créé dynamiquement ne s'affiche pas lors de l'appel de: Auriez-vous une idée du pourquoi? Merci d'avance