2009-08-07 10 views
1

창에 채울 JFormattedTextField 배열을 만들려고했습니다. 클릭 이벤트가 발생하면 액션이 처리되고 setText()를 사용하여 텍스트 필드가 채워집니다. 동작에서 마지막JTextfield 배열 도움말

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); 
} 

하고 : for 루프 여기에서 패널의 텍스트 필드를 인스턴스화하는데 사용되는 그런

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

: 어레이 및 초기화하는 코드 여기 생성자 메소드이다 Performmed 방법 나는 여기에 해당 필드에 텍스트를 다시 보내려면 다음과 같은 한 :

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; 
     }  
} 

나는 숫자가되고 그들이하는 생성되었는지 확인하기 위해 println 메소드를 사용했다. 내가 처음에 생성자에서의 setText 위해 노력했다

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

하지만 차이를하지 : 나는 계속해서이 라인에서 nullpointer 예외를 얻을. 이 작업을 위해 텍스트 필드 배열을 사용하지 않아야합니까?

+0

balance와 paidInt가 null이 아닌 것은 확실합니까? –

+0

내 눈! 당신은 실제로 JTable과 TableModel을 사용하여 조사해야합니다. – Nate

+0

저는 Jtable을 사용하고 계산시 채울 수있는 이중 배열을 만드는 것을 고려하고있었습니다. 이중 배열이나 tablemodellististener에 대한 actionlisteners가 필요합니까? 아니면 둘다? – Ruben

답변

1

나는이 선으로 두 배의 JFormattedTextField를 시작했다 : 다음

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

이 : 라인의 두 번째 세트의 JFormattedTextField [] 제거하여

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

, 나는 일을 코드를 가지고 아주.

+0

Ruben - pls는이 답변을 자체 승인하므로 답변되지 않은 질문으로 표시되지 않습니다. –

+0

죄송합니다. 깨닫지 못했습니다. – Ruben