Supprimer un composant swing après affichage.
Résolu/Fermé
ajp55
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
-
23 janv. 2013 à 11:04
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 - 23 janv. 2013 à 17:33
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 - 23 janv. 2013 à 17:33
A voir également:
- Supprimer un composant swing après affichage.
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Test composant pc - Guide
- Comment voir les composant de son pc - Guide
- Supprimer edge - Guide
3 réponses
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
23 janv. 2013 à 15:46
23 janv. 2013 à 15:46
Un remove suivi d'un repaint devrait suffire, pas besoin du reste.
Exemple :
Exemple :
public static void main(String[] args) { final JFrame frame = new JFrame(); final JLabel label = new JLabel("Je suis vivant",JLabel.CENTER); frame.add(label,BorderLayout.NORTH); final JButton button = new JButton("Tuer"); frame.add(button,BorderLayout.SOUTH); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frame.remove(label); frame.repaint(); } }); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
ajp55
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
23
23 janv. 2013 à 16:37
23 janv. 2013 à 16:37
Merci KX, ton exemple marche parce que c'est simplement le JLabel et tu l'enleve de la fenetre. Pour mon cas, c'est un sous composant de la fenetre que je souhaite vider.il ya plusieurs panel dans le frame.getContentPane() d'une fenetre. alors, si l'on vider un de ces panels, les methodes removeAll() et validate() ne marche pas graphiquement?
Encore merci pour ton aide.
Encore merci pour ton aide.
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
23 janv. 2013 à 16:44
23 janv. 2013 à 16:44
Ma réponse va être la même : un remove et un repaint suffisent.
J'avais utilisé un exemple où le Container était la JFrame, et où le Component un Label, mais si tu préfères voici un exemple où le Container est un JPanel et les Component des JTextField, mais fondamentalement ça ne change rien :
J'avais utilisé un exemple où le Container était la JFrame, et où le Component un Label, mais si tu préfères voici un exemple où le Container est un JPanel et les Component des JTextField, mais fondamentalement ça ne change rien :
public static void main(String[] args) { final JFrame frame = new JFrame(); final JPanel panel = new JPanel(); panel.add(new JTextField("Je suis vivant",JLabel.CENTER)); panel.add(new JTextField("Moi aussi",JLabel.CENTER)); frame.add(panel,BorderLayout.NORTH); final JButton button = new JButton("Tuer"); frame.add(button,BorderLayout.SOUTH); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { panel.removeAll(); panel.repaint(); } }); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
ajp55
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
23
23 janv. 2013 à 17:33
23 janv. 2013 à 17:33
Merci pour votre réponse, ça marché.
23 janv. 2013 à 16:35