【问题标题】:JTextfield array helpJTextfield 数组帮助
【发布时间】:2010-11-17 19:38:15
【问题描述】:

我一直在尝试创建一个填充在窗格中的 JFormattedTextField 数组。一旦发生点击事件,就会处理这些动作并使用 setText() 填充文本字段。数组和初始化的代码在这里的构造方法中:

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

然后在这里使用for循环来实例化面板中的文本字段:

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

最后,在 Action 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 来确认正在生成数字,它们就是。在这些行中,我不断收到空指针异常:

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

我曾尝试在构造函数中初始设置文本,但没有任何区别。我不应该使用文本字段数组来执行此操作吗?

【问题讨论】:

  • 您确定 balance 和paidInt 不为空吗?
  • 我的眼睛!你真的应该考虑使用 JTable 和 TableModel...
  • 我正在考虑使用 Jtable,只是制作可以在计算时填充的双数组​​。我需要双数组或 tablemodellistener 的 actionlistener 吗?还是两者兼而有之?

标签: java arrays jtextfield


【解决方案1】:

我用这些行启动了 JFormattedTextField 两次:

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

然后是这个:

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

通过删除第二组行中的 JFormattedTextField[],我让代码完美运行。

【讨论】:

  • Ruben - 请自行接受这个答案,这样它就不会显示为未回答的问题。
猜你喜欢
  • 1970-01-01
  • 2012-02-20
  • 2010-09-17
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多