计算个人所得税程序
2014-02-19 10:53
375 查看
计算个人所得税程序,经过计算,真实可用
import java.awt.Choice; import java.awt.Dialog; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Label; import java.awt.List; import java.awt.ScrollPane; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.lang.String; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.Label; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; //用户登录界面 public class GRS extends Frame implements ActionListener { private static final long serialVersionUID = 6347084101268070174L; static double base = 1600; // 免征基数 static double[] taxRate = { 0.05, 0.10, 0.15, 0.20, 0.25 };// 各级税率 public static void main(String[] args) { Frame frame = new Frame(); new GRS(frame); } Label Label1 = new Label("用户名:"); TextField textfieldialog = new TextField("密码:123"); Label Label2 = new Label("用户密码:"); TextField textfield2 = new TextField(10); Label Label5 = new Label("用户地区:"); Choice choice = new Choice(); Label Label6 = new Label("用户类别:"); List list = new List(2, false); JButton button1 = new JButton("确定"); JButton button2 = new JButton("取消"); Dialog dialog = new Dialog(this, "提示信息", false); ScrollPane sp = new ScrollPane(); public GRS(Frame frame) { super("个人所得税查询"); add(Label1); add(textfieldialog); add(Label2); textfield2.setEchoChar('*'); add(textfield2); add(Label5); choice.addItem("广东"); choice.addItem("上海"); choice.addItem("北京"); add(choice); add(Label6); list.add("普通用户"); list.add("管理员"); sp.add(list); add(sp); add(button1); button1.addActionListener(this); add(button2); button2.addActionListener(this); setLayout(new GridLayout(5, 2, 5, 20)); setBounds(430, 430, 300, 200); setResizable(false); setVisible(true); addWindowListener(new windowclose()); } public class windowclose extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } // 主菜单 public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("确定")) { if (textfield2.getText().trim().equals("123")) { addWindowListener(new windowclose()); JFrame f = new JFrame("主菜单"); JButton button5 = new JButton("1: 计算个人所得税"); JButton button6 = new JButton("2: 查询免征基数和税率"); JButton button7 = new JButton("3: 修改免征基数"); JButton button8 = new JButton("4: 修改税率"); f.add(button5); f.add(button6); f.add(button7); f.add(button8); button5.addActionListener(new ButAL()); button6.addActionListener(new ChaXun()); button7.addActionListener(new XiuGai1()); button8.addActionListener(new XiuGai2()); f.setLayout(new GridLayout(2, 2, 5, 20)); f.setBounds(385, 420, 400, 220); f.setResizable(false); f.setVisible(true); } else { dialog.setLayout(new FlowLayout(FlowLayout.CENTER)); Label tf = new Label("对不起,密码错误,请重试"); dialog.add(tf); dialog.setBounds(455, 430, 250, 60); dialog.setResizable(false); dialog.setVisible(true); dialog.addWindowListener(new windowclose()); } } else System.exit(0); } // 计算个人所得税 private class ButAL implements ActionListener { double income = -1; // 个人收入 double revenue = -1; // 个人所得税 JTextField testField; JTextField resultField; GRS r; public void actionPerformed(ActionEvent event) { JFrame f = new JFrame("个人所得税的计算"); JLabel jl = new JLabel("请输入你的工资:"); JLabel result = new JLabel("计算的结果:"); testField = new JTextField(5); resultField = new JTextField(5); JButton calculate = new JButton("计算"); calculate.addActionListener(new Calculate()); f.add(jl); f.add(testField); f.add(calculate); f.add(result); f.add(resultField); f.setLayout(new GridLayout(2, 3, 3, 20)); f.setBounds(380, 500, 400, 100); f.setResizable(false); f.setVisible(true); } private class Calculate implements ActionListener { @Override public void actionPerformed(ActionEvent e) { String s1 = testField.getText().trim(); income = Double.valueOf(s1); double taxible = income - r.base; if (taxible > 20000) revenue = (taxible - 20000) * r.taxRate[4] + 15000 * r.taxRate[3] + 3000 * r.taxRate[2] + 1500 * r.taxRate[1] + 500 * r.taxRate[0]; else if (taxible > 5000) revenue = (taxible - 5000) * r.taxRate[3] + 3000 * r.taxRate[2] + 1500 * r.taxRate[1] + 500 * r.taxRate[0]; else if (taxible > 2000) revenue = (taxible - 2000) * r.taxRate[2] + 1500 * r.taxRate[1] + 500 * r.taxRate[0]; else if (taxible > 500) revenue = (taxible - 500) * r.taxRate[1] + 500 * r.taxRate[0]; else if (taxible > 0) revenue = taxible * r.taxRate[0]; else if (taxible <= 0) revenue = 0; String s2 = String.valueOf(revenue); resultField.setText(s2); } } } // 查询免征基数和税率 private class ChaXun implements ActionListener { GRS r; @Override public void actionPerformed(ActionEvent e) { final JFrame f = new JFrame("查询"); // 窗体1 JTextField f1 = new JTextField(); JTextField f2 = new JTextField(); JTextField f3 = new JTextField(); JTextField f4 = new JTextField(); JTextField f5 = new JTextField(); JTextField f6 = new JTextField(); f.add(f1); f1.setText(" 免征基数为:" + String.valueOf(r.base)); // 输入免征基数 f.setLayout(new GridLayout(6, 1, 3, 5)); f.add(f2); f.add(f3); f.add(f4); f.add(f5); f.add(f6); f2.setText(" 一 级税率为:" + r.taxRate[0]); f3.setText(" 二 级税率为:" + r.taxRate[1]); f4.setText(" 三 级税率为:" + r.taxRate[2]); f5.setText(" 四 级税率为:" + r.taxRate[3]); f6.setText(" 五 级税率为:" + r.taxRate[4]); f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { f.setVisible(false); } }); f.setBounds(385, 420, 400, 200); f.setResizable(false); f.setVisible(true); } } // 修改免征基数 private class XiuGai1 implements ActionListener { GRS r; TextField tf = new TextField(10); Frame f = new Frame("修改免征基数"); @Override public void actionPerformed(ActionEvent e) { f.add(new Label("现在的免征基数为:" + r.base), BorderLayout.NORTH); f.add(new Label("请输入新的免征基数: "), BorderLayout.CENTER); f.add(tf, BorderLayout.EAST); tf.addActionListener(new TextFieldListener()); f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { f.setVisible(false); } }); f.setBounds(425, 460, 300, 120); f.setResizable(false); f.setVisible(true); } private class TextFieldListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { String s = tf.getText().trim(); r.base = Double.valueOf(s); tf.setText("修改成功!"); } } } // 修改税率 private class XiuGai2 implements ActionListener { int rateLevel = 0; // 客户要修改的税率级别 double newTaxRate = 0; // 修改后的税率 GRS r; Frame f = null; TextField tf1 = null; TextField tf2 = null; @Override public void actionPerformed(ActionEvent e) { f = new Frame("修改税率"); // 创建窗体 tf1 = new TextField(6); tf2 = new TextField(6); Panel p1 = new Panel(); Panel p2 = new Panel(); JButton ok1 = new JButton("确定"); ok1.addActionListener(new TF1Listener()); p1.add(new Label("请输入要修改的税率的级别:"), BorderLayout.WEST); p1.add(tf1, BorderLayout.EAST); p1.add(ok1, BorderLayout.EAST); f.add(p1, BorderLayout.NORTH); JButton ok2 = new JButton("确定"); ok2.addActionListener(new TF2Listener()); f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { f.setVisible(false); } }); p2.add(new Label(" 请输入你确定修改后的税率:"), BorderLayout.WEST); p2.add(tf2, BorderLayout.EAST); p2.add(ok2); f.add(p2, BorderLayout.SOUTH); f.setLayout(new GridLayout(2, 3, 3, 15)); f.setBounds(425, 460, 550, 120); f.pack(); f.setVisible(true); } private class TF1Listener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { String s1 = tf1.getText().trim(); rateLevel = Integer.valueOf(s1); if (rateLevel > 0 && rateLevel < 6) { r.taxRate[rateLevel - 1] = rateLevel; // 修改税率级别 tf1.setText("请继续!"); } else { tf1.setText("税率级别错误,修改失败!"); } } } private class TF2Listener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { String s2 = tf2.getText().trim(); double d = Double.valueOf(s2); r.taxRate[rateLevel - 1] = d; tf2.setText("修改成功!"); } } } }
相关文章推荐
- Ubuntu下Hadoop MapReduce集群搭建以及程序运行
- spring cvc-elt.1: Cannot find the declaration of element 'beans'解决办法
- Adapter中使用notifyDataSetChanged 与notifyDataSetInvalidated无效
- [Android开发] 打包时提示Proguard returned with error code 1
- 程序性能调优之 怎样使用gprof和oprofile来分析 linux程序的性能(每个函数的调用次数与耗时)
- Hibernate -- Session的主键生成策略
- 给图片局部区域加链接
- MFC应用程序调用顺序分析
- angular + easyui 做界面验证
- 欢迎进入Flask大型教程项目!
- Hibernate -- Session的主键生成策略
- 智者遇事求心,庸者遇事求境
- 标签开案例
- Linux下常用命令
- [置顶] Flex Builder3 安装SVN插件
- CAMdiaTimingFunction 用法
- linux 下VLAN数据包格式
- 现在(2013)多少的工资才要交税?税率是多少?
- 春季高发的皮肤病有哪些
- 堆排序