Newsgroup: it.comp.java
Titolo: aggiungere oggetti grafici ad un frame in momenti diversi

Cerco di spiegare la situazione chiaramente
Ho definito un Jframe ( chiamiamolo frame x)
All'interno di questo Jframe devo disegnare diversi rettangoli contenenti un
testo, attraverso diverse funzioni e diversi cicli di for chiamati in
istanti diversi.
Allora io creo il frame attraverso la seguente funzione:
private void Draw_Super_Sub_Classes(JFrame framex, DefaultMutableTreeNode
node, OntoParser reader_onto) {
    framex.setSize(650,650);
    // Rappresento la classe cliccata con un ovale
    framex.getContentPane().add(new DrawOval(0,0));
    framex.show();
    framex.getContentPane().add(new DrawText(node.toString(),0));
    framex.setBackground(Color.white);
    framex.show();
    Draw_Super_Classes(framex, node, reader_onto);
    //framex.show();
    Draw_Sub_Classes(framex, node, reader_onto);
  }
Già qui ho un problema, cioè se non aggiungo il testo, lo sfondo del frame
praticamente riprende quello della finestra sottostante e non riesco a
modificarlo
  private void Draw_Super_Classes(JFrame framex, DefaultMutableTreeNode
node, OntoParser reader_onto) {
  //per ogni superclasse aggiungo un rettangolo bordato grosso
  try {
    return_list= reader_onto.get_superclasses(node.toString());
    for (int i=0;i<return_list.size();i++){
      framex.getContentPane().add(new DrawOval(i+1,i+1));
      framex.repaint();
      framex.getContentPane().add(new
DrawText((String)return_list.elementAt(i),i+1));
      framex.repaint();
    }
    return_list.clear();
    framex.show();
    //per ogni componente del vettore disegno un ovale
  }
  catch (Exception ex) {
  }
}
  private void Draw_Sub_Classes(JFrame framex, DefaultMutableTreeNode node,
OntoParser reader_onto){
    //per ogni sottoclasse aggiungo un rettangolo bordato fino
  try {
    return_list= reader_onto.get_subclasses(node.toString());
    for (int i=0;i<return_list.size();i++){
      framex.getContentPane().add(new DrawOval(i+1,i+1));
      framex.repaint();
      framex.getContentPane().add(new
DrawText((String)return_list.elementAt(i),i+1));
      framex.repaint();
    }
    return_list.clear();
    framex.show();
    //per ogni componente del vettore disegno un ovale
  }
  catch (Exception ex) {
  }
}
I due cicli di for in cui devo aggiungere gli elementi vengono eseguiti
correttamente, però nel jframe viene visualizzato solo il primo rettangolo e
la prima stringa.
Qualcuno sa dimri perchè?
  class DrawOval extends JPanel{
    private int height, width;
    public DrawOval (int h , int w){
      height=h;
      width=w;
    }
    public void paintComponent(Graphics g) {
      super.paintComponents(g);
      g.drawOval(285+(height*80), 285+(width*80), 80, 80);
    }
  }
class DrawText  extends JPanel{
    private Font f;
    private FontMetrics fm;
    private String label;
    private int objnum;
    public DrawText(String txt, int x){
      label=txt;
      objnum=x;
    }
    public void setFonts (Graphics g) {
      if (f!=null) return;
      f=new Font("SansSerif", Font.BOLD ,10);
      fm=g.getFontMetrics(f);
    }
    public void paintComponent(Graphics g){
      super.paintComponent(g);
      setFonts(g);
      int w1=fm.stringWidth(label);
      g.setFont(f);
      g.setColor(Color.red);
      g.drawString(label,300+(objnum*10),290+(objnum*10));
    }
  }
}
-- 
Ciao Runner73

 Cerco di spiegare la situazione chiaramente
Un suggerimento: quando si ha un problema, invece di postare tutto il codice e 
demoralizzare ogni persona che potrebbe aiutarti, č buona consuetudine cercare 
di risalire alla radice del problema e poter mostrare poche ma chiare righe su 
cosa c'č che non va(e normalmente fare cosi ti porta a trovare la soluzione da 
solo ed a non aver bisogno di aiuto da parte di altri ;)
Marco