ciao ragazzi vi presento il mio problema:
in pratica con questo codice ottengo questa tabella:
codice:
public void scheda()
    {  GridBagConstraints c = new GridBagConstraints();
      if (ris==0){
        c.gridx=0;//colonna unica
       c.gridy=2;//riga 2 
      }
       else { c.gridx=0;
       c.gridy=3;}
        c.weightx = 1.0;
        c.weighty = 1.0;
        c.fill = GridBagConstraints.BOTH;
        //Hashtable tabella = new Hashtable();
        Object [][] tabella1 = new Object[150][8];
       // HashMap tabella = new HashMap();
        String[] nome ={"nome", "tipo", "scopo", "data estrazione","provenienza", "client/server", "frequenza utilizzo", "codice"};
        JTable tabb = new JTable (tabella1, nome);
        //tabb.setPreferredSize(new Dimension(10,500));
        tabella1[1][2]= "5";
        p_job.add(tabb,c);
       // tab.setRowSelcectionInterval(10,10);
        JScrollPane scroll = new JScrollPane(tabb);
        p_job.add(scroll,c);
        this.validate();
        
     
    }

public Record[] web(int ris2)  
    { try {
       GridBagConstraints c = new GridBagConstraints();
//coordinate directory       
       if (ris2==1){
       c.gridy=1;
       c.fill = GridBagConstraints.BOTH;}
//coordinate singola pagina
       else {
        c.gridx=0;
        c.gridy=0;c.fill = GridBagConstraints.BOTH;
            }c.weighty = 0.2;
        try{ 
        tabellaPagina tb = new tabellaPagina("");
        int i=0;        
//questo controllo verifica se è stato scelto un singolo file o una directory
       
//identificazione singola pagina        
        if (ris2 == 0) {t=1;
        Record[] rr = new Record[t];//record che richiama i dati dal database
        rr = tb.run(nomefile);//in tb.run(nomefile) ci sono i valori del database
        Record [] r = new Record[t];//record per la visualizzazione nella tabella
        r[0] = new Record(); 
        r[0].setSelezionato(true); //seleziona il flag
        r[0].setNome(rr[0].getNome()); //seleziona il nome del file
        r[0].setNomeFile(rr[0].getNomeFile()); //seleziona il nome della pagina web
        r[0].setPath(rr[0].getPath());//seleziona la directory in cui si trova il file
        r[0].setNumero(rr[0].getNumero());//conta il numero di file in quella directory
        r[0].setCodice(rr[0].getCodice());//visualizza il codice
        r[0].setData(rr[0].getData());//visualizza la data di estrazione
        
        Object[][] data = new Object[r.length][];
//questo ciclo for mi permette di passargli le tuple che ho configurato nella classe Record metodo getObject()
        for ( i = 0; i < r.length; i++)
        {
            data[i] = r[i].getObjects ();
        }
        
       MyTableModel my = new MyTableModel();
       my.MyTable(data);
       final JTable tab = new JTable(my);
       p_job.add(tab,c);
       rr2 =rr;
        TableColumn column = null;
        column = tab.getColumnModel().getColumn(6);
        my.setUpSportColumn(tab,column);
        tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
        tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
        tab.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
                  int[] selected = tab.getSelectedColumns();
                  for (int i = 0; i < selected.length; i++) {
                        if (selected[i] == 6) {//viene attivato solo per la sesta colonna
                   try{
                        JFrame f = new JFrame();
                        JPanel p = new JPanel();
                        tabellaPagina tb = new tabellaPagina("");
                        int count=1, n_cod=0;//salvo in n_cod il rigo selezionato
                        //stampa il rispettivo codice 
                        JTextArea t = new JTextArea(rr2[0].getCodice(),30,35);
                        JScrollPane s = new  JScrollPane(t);
                        f.setTitle("codice");
                        f.getContentPane().add(s);
                        f.setSize(400,440);
                        f.setLocation(470, 250); 
                        f.setVisible(true);
                          }
                  catch (IllegalArgumentException ee) {}
                  catch (ArrayIndexOutOfBoundsException e1) {}
                  catch (NullPointerException e2) {}     
                                                    }
              }
              } });
              JScrollPane scroll = new JScrollPane(tab); 
              p_job.add(scroll,c);
//scheda();
  }  
 if (ris2 == 1) { t=3;        
//tupla che rappresenta la pagina con i suoi rispettivi campi
        Record[] rr = new Record[t];
        rr = tb.run(nomefile);
        Record [] r = new Record[t];
        while (i!=t){
        r[i] = new Record(); 
        r[i].setSelezionato(true); //seleziona il flag
        r[i].setNome(rr[i].getNome()); //seleziona il nome del file
        r[i].setNomeFile(rr[i].getNomeFile()); //seleziona il nome della pagina web
        r[i].setPath(rr[i].getPath());//seleziona la directory in cui si trova il file
        r[i].setNumero(rr[i].getNumero());//conta il numero di file in quella directory
        r[i].setCodice(rr[i].getCodice());//visualizza il codice
        r[i].setData(rr[i].getData());//visualizza la data di estrazione
        i++; 
        }
        Object[][] data = new Object[r.length][];
//questo ciclo for mi permette di passargli le tuple che ho configurato nella classe Record metodo getObject()
        for ( i = 0; i < r.length; i++)
        {
            data[i] = r[i].getObjects ();
        }
        
       MyTableModel my = new MyTableModel();
       my.MyTable(data);
       final JTable tab = new JTable(my);
                p_job.add(tab,c);
                rr2 =rr;
                TableColumn column = null;
                column = tab.getColumnModel().getColumn(6);
                my.setUpSportColumn(tab,column);
                tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
                tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
                tab.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                          int[] selected = tab.getSelectedColumns();
                          int selectedrow = tab.getSelectedRow();
                          //boolean isSelected = false;
                          for (int i = 0; i < selected.length; i++) {
                                if (selected[i] == 6) {//viene attivato solo per la sesta colonna
                                //isSelected = true;
                            try{
                                JFrame f = new JFrame();
                                JPanel p = new JPanel();
                                tabellaPagina tb = new tabellaPagina("");
                                int count=1, n_cod=0;//salvo in n_cod il rigo selezionato
                                n_cod=selectedrow;
                                JTextArea t = new JTextArea(rr2[n_cod].getCodice(),30,35); //stampa il rispettivo codice 
                                JScrollPane s = new  JScrollPane(t);
                                f.setTitle("codice");
                                f.getContentPane().add(s);
                                f.setSize(400,440);
                                f.setLocation(470, 250); 
                                f.setVisible(true);
                                  }
                          catch (IllegalArgumentException ee) {}
                          catch (ArrayIndexOutOfBoundsException e1) {}
                          catch (NullPointerException e2) {}     
                                                            }
                      }
                      } });
        JScrollPane scroll = new JScrollPane(tab); p_job.add(scroll,c);
        
       // scheda();
  } 
  }
       
        catch (SQLException ex) {
                    ex.printStackTrace();
                } catch (ParserConfigurationException ex) {
                    ex.printStackTrace();
                } catch (ClassNotFoundException ex) {
                    ex.printStackTrace();
                } catch (SAXException ex) {
                    ex.printStackTrace();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
 }
catch (NullPointerException e){}    
catch (ArrayIndexOutOfBoundsException e){}
     this.validate();
     scheda();
    return rr2;
}
ottengo la tabella che sta in allegato,


il metodo scheda() che cè nel codice sopra di colore rosso rappresenta la tabella inferiore, mentre web(), di colore verde la tabella superiore...e fin qui niente di male...segue nel secondo messaggio