数组循环逻辑

时间:2017-03-31 18:43:20

标签: java arrays jtable logic

这可能是一个简单的问题。我无法看到我的循环语句的逻辑在当前形式中出现了什么问题。我很感激有人愿意告诉我我做错了什么。

我在JTable中设置特定单元格的值,以便在选择单选按钮时,它将计算整个列的新支付金额。我遇到的问题是:

  • 我只希望它执行一次计算。如果你在选择它之后点击了百分之一提升按钮,我不想每次增加额外的1%加注,这是它目前正在做的。
  • 当你从1%的涨幅变为5%的涨幅或2%的涨幅时,我希望它计算5%的基本工资增幅并显示出来,而不是将5%的涨幅加到他们已经提高的薪水上,它目前正在做。
  • 当您按下重置单选按钮时,它应将付款金额返回到之前在表格中的默认金额。目前它什么也没做。

    public void actionPerformed(ActionEvent e)
    {                 
        double[] savedPay = new double[outputTable.getRowCount()];
        double raisePayAMT = 0;
        for(int i = 0; i < outputTable.getRowCount(); i++)
        {
            savedPay[i] = (Double) outputTable.getValueAt(i,3);
        }
        if(oneRadio.isSelected())
        {
    
            for(int i = 0; i < outputTable.getRowCount(); i++)
            {
                raisePayAMT = savedPay[i] + (savedPay[i]*.02);
                outputTable.setValueAt(raisePayAMT,i,3);
                outputTable.repaint();
            }
        }
        else if(twoRadio.isSelected())
        {
    
            for(int i = 0; i < outputTable.getRowCount(); i++)
            {
                raisePayAMT = savedPay[i] + (savedPay[i]*.02);
                outputTable.setValueAt(raisePayAMT,i,3);
                outputTable.repaint();
            }
        }
        else if(fiveRadio.isSelected())
        {
    
            for(int i = 0; i < outputTable.getRowCount(); i++)
            {
                raisePayAMT = savedPay[i] + (savedPay[i]*.05);
                outputTable.setValueAt(raisePayAMT,i,3);
                outputTable.repaint();
            }                
        }
        else if(resetRadio.isSelected())
        {
    
            for(int i = 0; i < outputTable.getRowCount(); i++)
            {                    
                outputTable.setValueAt(savedPay[i],i,3);
                outputTable.repaint();
            }    
        }
    

    }

0 个答案:

没有答案