Chamada de variavel

Vou tentar explicar um pouco do meu projeto:

Estou fazendo um programa que desenha tabelas DED de banco de dados, só q é baseado em Data Warehouse, ou seja o DED é composto por tabelas comuns que possuem chave primaria e estrangeira, mas a unica diferença que ela é composta tb por uma tabela FATO que contem todas as chaves primarias e estrangeiras das tabelinhas comuns.

Sendo assim meu programa precisa que ao vc preencher as tabelas comuns, quando clicarmos por ultimo para desenhar a janela FATO automaticamente tem que no desenho dela aparecer todas as chaves estrangeiras e primarias das tabelas comuns q o usuario ja fez.

Enfim, meu programa tenta armazenar em um vetor todas as chaves, só q está acontecendo um problema ele só desnha a primeira chave da primeira tabela. n desenha mais nada, tenho p mim q eles só está entrando no for uma vez.

abaixo mostro um pouco do codigo p alguem pode ver qual o problema.

esse identifica o atributo q contem chave primaria

[code]if(atributo[a].contains(“Primary Key”) ){

            Somar.setsomar();
                         janelafato.Chaves(atributo[a]);
            
           
         }
        [/code]

Essa é a classe somar que é referida ali em cima

public static void setsomar(){ nfato2++; } public static int getsomar(){ return nfato2; }

Essa é a classe janela fato

[code]static void Chaves(String ch) {

     int i = Somar.getsomar();
       atribi[i]=ch;
     
  }[/code]

E em janelafato temos a classe graphic que desenha tabela e dentro dela escreve os atributos

g.drawString(atribi[i],var1,var2);

var1 e var2 , é só variavel de posição n interfere no codigo

o que há de errado??? :?

ele deveria era fazer isso dentro desse for

[code]

for(int a =0;a<natributos;a++){[/code]