Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Gestione frame,aggiunta e cancellazione di elementi

    codice:
    import javax.swing.*;
    import java.awt.*;
    public class FrameExampleLayout extends JFrame {
    
       public FrameExampleLayout() {
          setLayout(new BorderLayout());
          ...
          ... 
          ...
          add(new PannelloGrid(), "Center");
          ....
          ....
          setVisible(true);
       }
    }
    
    public class PannelloGrid extends JPanel {
    
       public PannelloGrid() {
          setLayout(new GridLayout());
          ...
          ...
          ...
          ...
          add(new JLabel(""));
          add(new JButton(""));
          ....
          ....
       }
    }
    Il codice presentato mi permette di creare un oggetto di tipo PannelloGrid e di aggiungerlo al centro di un frame con borderLayout.
    Come posso rimuovere ciò che aggiungo tramite l'add nella classe FrameExampleLayout?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    usa remove sul pannello che contiene la roba da rimuovere!

    da come e' scritto il codice pero', dovresti avere qualche problemino. mi spiego meglio:

    tu aggiungi i componenti con add(new Componente()), di conseguenza non salvi da qualche parte il riferimento a quel componente e di conseguenza non puo' passarlo a remove per la rimozione!!
    codice:
    JLabel ciao = new JLabel("ciao");
    
    add(ciao);
    ...
    ...
    ...
    remove(ciao);
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    No il riferimento in realta lo lascio era uno schema quello presentato.
    Ho risolto cancellando tutto il frame e quindo CENTER+NORD e reinserendo NORD che era un menu!!
    Grazie cmq

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    ok, come vuoi...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Esiste il metodo remove() della classe Container (da cui discende ciascun contenitore, appunto).

    Il metodo remove può prendere il riferimento al componente da rimuovere o la sua "posizione" ovvero l'indice che viene ad esso assegnato quando viene aggiunto (un progressivo, insomma). Quindi, anche se non hai un riferimento al componente, lo puoi comunque rimuovere se tieni traccia del suo progressivo.


    Se non tieni traccia del progressivo, ma tutti i componenti aggiunti sono di classi diverse, puoi rintracciare il componente da rimuovere attraverso l'array di oggetti Component ottenibile dal metodo getComponents(), che ritorna la lista di tutti i componenti aggiunti al Container, testando l'oggetto tramite l'operatore instanceOf.
    Sempre attraverso tale lista, comunque, puoi rintracciare il tuo componente attraverso altre caratteristiche. Ad esempio, se hai più di un pulsante, ma quello che devi rimuovere si chiama "pulsante B", lo rintraccerai in questo modo:
    codice:
    Component [] cmp = getComponents();
    JButton jb = null;
    for (int j=0; j<cmp.length; j++) {
       jb = (JButton) cmp[j];
       if ( jb.getLabel().equals("pulsante B") ) {
          remove( cmp[j] );   // A questo punto, cmp[j] è il tuo riferimento!!
       }
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.