?? texframe.java
字號:
package 實驗一;import javax.swing.*;import java.awt.event.*;import java.awt.*;public class TexFrame extends JFrame{ JTable table; Object name[]={"級別","應(yīng)納所得額(>)","應(yīng)納所得額(<=)","稅率"}; Object level[][]={{1,0,500,0.05},{2,500,2000,0.10}, {3,2000,5000,0.15},{4,5000,20000,0.20}, {5,20000,"",0.25}}; //設(shè)置表格個單元的初始值 JPanel p,p1; JButton count; //計算按鈕 JButton change; //修改免征基數(shù)按鈕 JTextField start; //顯示免征基數(shù) JTextField input; //輸入計算總額 JTextField output; //輸出計算結(jié)果 TexFrame(String s) { super(s); start=new JTextField(10); start.setText(JumpoffPoint+""); //默認初始顯示1600 change=new JButton("修改免征基數(shù)"); count=new JButton("計算"); input=new JTextField(10); output=new JTextField(10); table=new JTable(level,name){ public boolean isCellEditable(int row, int column){ if (column==0||column==1||column==2) return false; else return true; } }; //新建表格,并設(shè)置第一、二、三列不可修改 p1=new JPanel(); p1.add(new JLabel("免征基數(shù)")); p1.add(start); p1.add(change); p=new JPanel(); p.add(new JLabel("輸入金額")); p.add(input); //input.setText(money+""); //輸入金額初始顯示0 p.add(count); ah=new ActionHandler(this); count.addActionListener(ah); //添加事件監(jiān)聽器 change.addActionListener(ah); //添加事件監(jiān)聽器 p.add(new JLabel("應(yīng)納的稅額")); p.add(output); //設(shè)置窗口布局 getContentPane().add(p1,BorderLayout.NORTH); getContentPane().add(p,BorderLayout.SOUTH); getContentPane().add(new JScrollPane(table),BorderLayout.CENTER); setSize(500,250); setLocation(300,100); setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void setMoney(float m) { //設(shè)置計算金額 money=m; } public float getResult() { //獲取計算結(jié)果 return result; } public void chJumpoffPoint(int m) {//修改免征基數(shù) JumpoffPoint=m; } private int countLevel(float m) {//判斷輸入金額所在的層次 if (m<=JumpoffPoint) return 0; else if (m-JumpoffPoint<=Integer.parseInt(level[0][2].toString())) return 1; else if (m-JumpoffPoint<=Integer.parseInt(level[1][2].toString())) return 2; else if (m-JumpoffPoint<=Integer.parseInt(level[2][2].toString())) return 3; else if (m-JumpoffPoint<=Integer.parseInt(level[3][2].toString())) return 4; else return 5; } public void counter(){ //計算個人所得稅 switch(countLevel(money)){ case 0: //收入未達到起征點 result=0; break; case 1: //第一層 result=((money - JumpoffPoint) * Float.parseFloat(level[0][3].toString())); break; case 2: //第二層 result= Integer.parseInt(level[0][2].toString())*Float.parseFloat(level[0][3].toString()) +(money-JumpoffPoint-Integer.parseInt(level[1][1].toString()))*Float.parseFloat(level[1][3].toString()); break; case 3: //第三層 result= Integer.parseInt(level[0][2].toString())*Float.parseFloat(level[0][3].toString()) +(Integer.parseInt(level[1][2].toString())-Integer.parseInt(level[1][1].toString()))*Float.parseFloat(level[1][3].toString()) +(money-JumpoffPoint-Integer.parseInt(level[2][1].toString()))*Float.parseFloat(level[2][3].toString()); break; case 4: //第四層 result= Integer.parseInt(level[0][2].toString())*Float.parseFloat(level[0][3].toString()) +(Integer.parseInt(level[1][2].toString())-Integer.parseInt(level[1][1].toString())*Float.parseFloat(level[1][3].toString())) +(Integer.parseInt(level[2][2].toString())-Integer.parseInt(level[2][1].toString()))*Float.parseFloat(level[2][3].toString()) +(money-JumpoffPoint-Integer.parseInt(level[3][1].toString()))*Float.parseFloat(level[3][3].toString()); break; case 5: //第五層 result= Integer.parseInt(level[0][2].toString())*Float.parseFloat(level[0][3].toString()) +(Integer.parseInt(level[1][2].toString())-Integer.parseInt(level[1][1].toString())*Float.parseFloat(level[1][3].toString())) +(Integer.parseInt(level[2][2].toString())-Integer.parseInt(level[2][1].toString()))*Float.parseFloat(level[2][3].toString()) +(Integer.parseInt(level[3][2].toString())-Integer.parseInt(level[3][1].toString()))*Float.parseFloat(level[3][3].toString()) +(money-JumpoffPoint-Integer.parseInt(level[4][1].toString()))*Float.parseFloat(level[4][3].toString()); break; } } private float money=0; //輸入計算金額 private float result; //計算結(jié)果 private int JumpoffPoint=1600; //起征點 private ActionHandler ah; //事件響應(yīng)}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -