2009-08-07 5 views
1

J'ai essayé de créer un tableau JFormattedTextField qui se remplit dans un volet. Une fois qu'un événement de clic se produit, les actions sont traitées et les champs de texte sont remplis à l'aide de setText(). Le code pour le tableau et en initialisant est dans la méthode constructeur ici:Aide tableau JTextfield

JFormattedTextField[] balance=new JFormattedTextField[360]; 
JFormattedTextField[] paidInt=new JFormattedTextField[360]; 

Ensuite, une boucle est utilisée pour instancier les champs de texte dans le panneau ici:

for(count=0;count<360;++count) 
{ 
    counter[count]=Integer.toString(count + 1); 
    labPayment[count]=new JLabel(counter[count]); 
    scheduler.add(labPayment[count]); 
    balance[count]=new JFormattedTextField(amountFormat); 
    scheduler.add(balance[count]); 
    balance[count].addActionListener(this); 
    paidInt[count]=new JFormattedTextField(amountFormat); 
    scheduler.add(paidInt[count]); 
    paidInt[count].addActionListener(this); 
} 

Et enfin, dans l'action méthode Performmed je suit pour renvoyer le texte à ces champs ici:

if(e.getSource()==butSchedule) 
{ 
     for(calc2count=0;calc2count<360; ++calc2count) 
     { 
      paidint[calc2count]=dmtgAmount * (dmtgRate/12); 
      payout[calc2count]=dmtgPayment- paidint[calc2count]; 
      dmtgAmount=dmtgAmount - payout[calc2count]; 
      stBalance[calc2count]=Double.toString(dmtgAmount); 
      stpaidInt[calc2count]=Double.toString(paidint[calc2count]); 

     // balance[calc2count].setText(stBalance[calc2count]); 
     // paidInt[calc2count].setText(dollarsandcents.format(stpaidInt[calc2count])); 

      System.out.println((stBalance[calc2count]); 
      System.out.println(" "); 
      System.out.println((stpaidInt[calc2count]); 
      System.out.println(" "); 
      //if structure used to default to $0 if the loan balance becomes $0 or less 
      if(dmtgAmount<0) 
       break; 

      //if structure used to default to $0 if the interest becomes $0 or less 
      if(paidint[calc2count]<0) 
       break; 
     }  
} 

J'ai utilisé le println pour confirmer que les chiffres sont génèrent, qu'ils sont. Je reçois sans cesse une exception nullpointer à ces lignes:

balance[calc2count].setText(stBalance[calc2count]); 
paidInt[calc2count].setText(stpaidInt[calc2count]); 

J'ai essayé d'abord setText dans le constructeur, mais il n'a fait aucune différence. Est-ce que je ne devrais pas utiliser un tableau de champs de texte pour le faire?

+0

Etes-vous sûr que balance et paidInt sont non nulles? –

+0

MES YEUX! Vous devriez vraiment regarder dans l'utilisation d'un JTable et TableModel ... – Nate

+0

Je pensais utiliser un Jtable et juste faire des tableaux doubles qui peuvent être peuplés lors du calcul. Aurais-je besoin d'actionlisteners pour les doubles tableaux ou un tablemodellistenerener? Ou les deux? – Ruben

Répondre

1

j'avais lancé deux fois JFormattedTextField avec ces lignes:

private JFormattedTextField[] balance; 
private JFormattedTextField[] paidInt; 

puis ceci:

JFormattedTextField[] balance=new JFormattedTextField[360]; 
JFormattedTextField[] paidInt=new JFormattedTextField[360]; 

en supprimant JFormattedTextField [] dans la deuxième série de lignes, je me suis le code de travail à la perfection.

+0

Ruben - pls auto-accepter cette réponse afin qu'il ne montre pas comme une question sans réponse. –

+0

Désolé, je ne savais pas. – Ruben