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?
Etes-vous sûr que balance et paidInt sont non nulles? –
MES YEUX! Vous devriez vraiment regarder dans l'utilisation d'un JTable et TableModel ... – Nate
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