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.
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
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(); }
Mon probleme, c'est que le jLabel créé dynamiquement ne s'affiche pas lors de l'appel de:
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); } }Auriez-vous une idée du pourquoi? Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part LED1.Display(this);
Partager