早教吧 育儿知识 作业答案 考试题库 百科 知识分享

不好意思你的回答刚才对我是有用的,但是我设正确答案的时候选错了,

题目详情
不好意思你的回答刚才对我是有用的,但是我设正确答案的时候选错了,
▼优质解答
答案和解析
其实计算那个按钮已经起作用了.只不过滚动条那个组件没有重载数据.因为你每次都new一个table了.
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
public class LoanJFrame extends JFrame implements ActionListener
{
\x05private JTextField text_money,text_rate,text_year;
\x05private JSpinner spin_year,spin_month;
\x05private JButton button;
\x05private JTable table;
\x05private JScrollPane jsp;
\x05public LoanJFrame()
\x05{
\x05\x05super("银行贷款按月还本利息的计算");
\x05\x05this.setBounds(300,240,740,400);
\x05\x05this.setBackground(Color.LIGHT_GRAY);
\x05\x05this.setDefaultCloseOperation(EXIT_ON_CLOSE);
\x05\x05JPanel panel=new JPanel();
\x05\x05this.getContentPane().add(panel,"North");
\x05\x05
\x05\x05panel.add(new JLabel("贷款金额"));
\x05\x05text_money=new JTextField("100000",6);
\x05\x05panel.add(text_money);
\x05\x05
\x05\x05panel.add(new JLabel("元 贷款利率"));
\x05\x05text_rate=new JTextField("0.5025",6);
\x05\x05panel.add(text_rate);
\x05\x05
\x05\x05panel.add(new JLabel("%/月 贷款年限"));
\x05\x05text_year=new JTextField("5",3);
\x05\x05panel.add(text_year);
\x05\x05
\x05\x05panel.add(new JLabel("年 起始年月"));
\x05\x05Calendar today=Calendar.getInstance();
\x05\x05int year=today.get(Calendar.YEAR);
\x05\x05int nextmonth=today.get(Calendar.MONTH)+1;
\x05\x05nextmonth=nextmonth%12+1;
\x05\x05if(nextmonth==1)
\x05\x05\x05year++;
\x05\x05spin_year=new JSpinner();
\x05\x05spin_year.setValue(year);
\x05\x05panel.add(spin_year);
\x05\x05panel.add(new JLabel("年"));
\x05\x05spin_month=new JSpinner(new SpinnerNumberModel(nextmonth,1,12,1));
\x05\x05panel.add(spin_month);
\x05\x05panel.add(new JLabel("月"));
\x05\x05button=new JButton("计算");
\x05\x05panel.add(button);
\x05\x05button.addActionListener(this);
\x05\x05calc();
\x05\x05jsp = new JScrollPane(table);
\x05\x05this.getContentPane().add(jsp);
\x05\x05this.setVisible(true);
\x05}
\x05public void actionPerformed(ActionEvent e)
\x05{\x05
\x05\x05if(e.getSource() == button){
\x05\x05\x05calc();
\x05\x05\x05jsp.setViewportView(table);
\x05\x05}
\x05}
\x05public void calc(){
\x05\x05String titles[]={"年月","本金余额(元)","月还本金(元)","月还利息(元)","月还本息(元)"};
\x05\x05int months=Integer.parseInt(text_year.getText())*12;
\x05\x05Object datas[][]=new Object[months][5];
\x05\x05int year=Integer.parseInt(""+spin_year.getValue());
\x05\x05int month=Integer.parseInt(""+spin_month.getValue());
\x05\x05double leavings=Double.parseDouble(""+text_money.getText());
\x05\x05double pay=leavings/months;
\x05\x05double rate=Double.parseDouble(""+text_rate.getText());
\x05\x05for(int i=0;i