Ich habe versucht, ein JFormattedTextField-Array zu erstellen, das in einem Fenster auffüllt. Sobald ein Klickereignis auftritt, werden die Aktionen verarbeitet und die Textfelder werden mit setText() gefüllt. Der Code für das Array und Initialisierung im Konstruktor hier:JTextfield-Array-Hilfe
JFormattedTextField[] balance=new JFormattedTextField[360];
JFormattedTextField[] paidInt=new JFormattedTextField[360];
Dann wird eine for-Schleife verwendet, um die Textfelder in der Platte hier zu instanziiert:
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);
}
Und schließlich in der Aktion Performmed Methode ich habe nach dem hier den Text auf diese Felder zurück zu senden:
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;
}
}
ich benutzte die println zu bestätigen, dass die Zahlen sind erzeugen, was sie sind. Ich immer eine Nullpointer-Ausnahme auf diesen Linien erhalten:
balance[calc2count].setText(stBalance[calc2count]);
paidInt[calc2count].setText(stpaidInt[calc2count]);
habe ich versucht, zunächst im Konstruktor setText aber es machte keinen Unterschied. Sollte ich dafür kein Textfeld-Array verwenden?
Sind Sie sicher, dass balance und paidInt nicht null sind? –
MEINE AUGEN! Sie sollten wirklich in die Verwendung eines JTable und TableModel schauen ... – Nate
Ich erwog, eine Jtable zu verwenden und nur doppelte Arrays zu machen, die nach Berechnung gefüllt werden können. Benötige ich ActionListener für die Double Arrays oder einen TableModellistener? Oder beides? – Ruben