s1(java)项目实战(固定资产管理)(asset_AssetAdd )

这是一个用于添加资产信息的Java对话框程序,能够实现资产信息的输入、校验与保存,并通过下拉菜单选择资产类别。

 package asset;

import java.awt.*;

import javax.swing.*;
import java.awt.*;
import tools.*;
import java.util.*;
import java.awt.event.*;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class AssetAdd extends JDialog {
    JComboBox cmbfirst = new JComboBox();
    JComboBox cmbsecond = new JComboBox();
    JLabel jLabel1 = new JLabel();
    JTextField txt_name = new JTextField();
    JLabel jLabel2 = new JLabel();
    JTextField txt_price = new JTextField();
    JLabel jLabel3 = new JLabel();
    JTextField txt_id = new JTextField();
    JLabel jLabel4 = new JLabel();
    JTextField txt_time = new JTextField();
    JLabel jLabel5 = new JLabel();
    JTextField txt_type = new JTextField();
    JLabel jLabel6 = new JLabel();
    JTextArea txt_mem = new JTextArea(4, 20);
    JLabel jLabel7 = new JLabel();
    JComboBox cmbStatus = new JComboBox();
    JButton btn_ok = new JButton();
    JButton btn_cancle = new JButton();
    private DBConnection dcon = null;
    private HashMap firstMap = new HashMap();
    private HashMap secondMap = new HashMap();

    public AssetAdd(Frame owner, String title, boolean modal) {
        super(owner, title, modal);
        try {
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            jbInit();
            pack();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    public AssetAdd() {
        this(new Frame(), "AssetAdd", false);
    }

    private void getcmbsecondlist() {
        String[] s1;
        if(cmbfirst.getSelectedItem() != null){
            s1 = getSecondList(getFirstID(cmbfirst.getSelectedItem().
                                          toString().trim()));
        }else
         {
             s1 = new String[0];
        }
        if (s1 != null) {
            cmbsecond.removeAllItems();
            cmbsecond.removeItem("");
            for (int i = 0; i < s1.length; i++) {
                cmbsecond.addItem(s1[i]);
            }
        }
    }

    private void setAssetid() {
        if (cmbsecond.getSelectedItem() != null) {
            String s = cmbsecond.getSelectedItem().toString().trim();
            txt_id.setText(getAssetID(s));

        } else {
            txt_id.setText("");
        }
    }

    private void jbInit() throws Exception {
        String[] s = getFirstList();
        if (s != null || s.length!=0) {
            cmbfirst.removeAllItems();
            for (int i = 0; i < s.length; i++) {
                cmbfirst.addItem(s[i]);
            }
        }
        getcmbsecondlist();
        cmbfirst.setEditable(false);
        this.getContentPane().setLayout(null);
        cmbfirst.setBounds(new Rectangle(43, 13, 84, 32));
        jLabel2.setFont(new java.awt.Font("宋体", Font.BOLD, 13));
        jLabel2.setText("状态");
        jLabel2.setBounds(new Rectangle(173, 128, 79, 27));
        txt_price.setText("");
        txt_price.setBounds(new Rectangle(210, 96, 81, 27));
        jLabel3.setFont(new java.awt.Font("宋体", Font.BOLD, 13));
        jLabel3.setText("编号");
        jLabel3.setBounds(new Rectangle(15, 59, 79, 27));
        setAssetid();
        txt_id.setBounds(new Rectangle(51, 60, 81, 27));
        txt_id.setEditable(false);
        jLabel4.setFont(new java.awt.Font("宋体", Font.BOLD, 13));
        jLabel4.setText("时间");
        jLabel4.setBounds(new Rectangle(14, 135, 79, 27));
        Calendar today = Calendar.getInstance();
        int month = today.get(Calendar.MONTH) + 1;
        int year = today.get(Calendar.YEAR);
        int day = today.get(Calendar.DATE);
        String monthStr;
        String dayStr;
        if (month < 10) {
            monthStr = "0" + month;
        } else {
            monthStr = String.valueOf(month);
        }
        if (day < 10) {
            dayStr = "0" + day;
        } else {
            dayStr = String.valueOf(day);
        }
        txt_time.setText(year + monthStr + dayStr);
        txt_time.setEditable(false);
        txt_time.setBounds(new Rectangle(51, 134, 81, 27));
        jLabel5.setFont(new java.awt.Font("宋体", Font.BOLD, 13));
        jLabel5.setText("类型");
        jLabel5.setBounds(new Rectangle(13, 94, 79, 27));
        txt_type.setText("");
        txt_type.setBounds(new Rectangle(51, 98, 81, 27));
        jLabel6.setFont(new java.awt.Font("宋体", Font.BOLD, 13));
        jLabel6.setText("备注");
        jLabel6.setBounds(new Rectangle(22, 176, 79, 27));
        txt_mem.setText("");
        txt_mem.setBounds(new Rectangle(61, 170, 252, 73));
        txt_name.setBounds(new Rectangle(211, 60, 81, 27));
        jLabel1.setFont(new java.awt.Font("宋体", Font.BOLD, 13));
        jLabel1.setText("名称");
        jLabel1.setBounds(new Rectangle(174, 59, 79, 27));
        String[] stutas = {"正常", "报废", "维修"};
        cmbStatus.removeAllItems();
        cmbStatus.addItem(stutas[0]);
        cmbStatus.addItem(stutas[1]);
        cmbStatus.addItem(stutas[2]);
        cmbStatus.setBounds(new Rectangle(211, 134, 84, 28));
        btn_ok.setBounds(new Rectangle(56, 254, 95, 33));
        btn_ok.setText("确定");
        btn_cancle.setBounds(new Rectangle(176, 254, 85, 32));
        btn_cancle.setText("取消");
        this.getContentPane().add(cmbfirst);
        jLabel7.setFont(new java.awt.Font("宋体", Font.BOLD, 13));
        jLabel7.setText("单价");
        jLabel7.setBounds(new Rectangle(174, 91, 79, 27));
        cmbsecond.setEditable(false);
        cmbStatus.setEditable(false);
        this.getContentPane().add(cmbsecond);
        this.getContentPane().add(txt_type);
        this.getContentPane().add(txt_name);
        this.getContentPane().add(jLabel1);
        this.getContentPane().add(jLabel3);
        this.getContentPane().add(txt_id);
        this.getContentPane().add(jLabel5);
        this.getContentPane().add(jLabel4);
        this.getContentPane().add(jLabel6);
        this.getContentPane().add(txt_mem);
        this.getContentPane().add(jLabel7);
        this.getContentPane().add(jLabel2);
        this.getContentPane().add(txt_time);
        this.getContentPane().add(txt_price);
        this.getContentPane().add(cmbStatus);
        this.getContentPane().add(btn_cancle);
        this.getContentPane().add(btn_ok);
        this.setResizable(false);
        cmbsecond.setBounds(new Rectangle(164, 13, 106, 32));
        btn_cancle.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                closeDialog();
            }
        });
        cmbfirst.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                getcmbsecondlist();
                setAssetid();
            }
        });
        cmbsecond.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                setAssetid();
            }
        });
        btn_ok.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                addAsset();

            }
        });
    }

    private void addAsset() {
        if (txt_id.getText().trim().length() == 0) {
            JOptionPane.showMessageDialog(this, "编号不能为空");
        } else if (txt_name.getText().trim().length() == 0) {
            JOptionPane.showMessageDialog(this, "名称不能为空");
        } else if (txt_type.getText().trim().length() == 0) {
            JOptionPane.showMessageDialog(this, "型号不能为空");
        } else if (txt_price.getText().trim().length() == 0) {
            JOptionPane.showMessageDialog(this, "不能为空");
        } else if (!priceIsRight(txt_price.getText().trim())) {} else {
            dcon = new DBConnection();
            String mem;
            if (txt_mem.getText().trim().length() == 0) {
                mem = "";
            } else {
                mem = txt_mem.getText().trim();
            }
            String sql = "insert into Asset (asset_id,asset_name,asset_type,asset_price,asset_buytime,asset_status,asset_user,remark,childkind_id) values ('";
            sql += txt_id.getText().trim() + "','";
            sql += txt_name.getText().trim() + "','";
            sql += txt_type.getText().trim() + "','";
            sql += txt_price.getText().trim() + "','";
            sql += txt_time.getText().trim() + "','";
            sql += cmbStatus.getSelectedItem().toString().trim() + "','";
            sql += "" + "','";
            sql += mem + "','";
            sql += getSecondID(cmbsecond.getSelectedItem().toString().trim()).
                    trim() + "')";
            JOptionPane.showMessageDialog(this, dcon.update(3, sql));
            closeDialog();
        }
    }

//price is right
    private boolean priceIsRight(String price) {
        for (int i = 0; i < price.trim().length(); i++) {
            if (!Character.isDigit(price.charAt(i))) {
                JOptionPane.showMessageDialog(this, "金额不能怎么能有字符呢");
                return false;
            }
        }
        if (Integer.parseInt(price) < 2000) {
            JOptionPane.showMessageDialog(this, "金额不能小于2000");
            return false;
        }
        return true;
    }

//close
    private void closeDialog() {
        this.dispose();
    }

//get first list
    private String[] getFirstList() {
        dcon = new DBConnection();
        String sql = "select fatherkind_id,fatherkind_name from (select childkind.fatherkind_id,fatherkind.fatherkind_name  from childkind ,fatherkind where(childkind.fatherkind_id = fatherkind.fatherKind_id) ) as a group by fatherkind_id ,fatherkind_name";
        Vector v = dcon.select(sql);
        String FirstStr[] = new String[v.size()];
        for (int i = 0; i < v.size(); i++) {
            String value = ((Vector) v.get(i)).get(0).toString().trim();
            FirstStr[i] = ((Vector) v.get(i)).get(1).toString().trim();
            firstMap.put(FirstStr[i], value);
        }
        return FirstStr;
    }

    //first name _> firstid
    private String getFirstID(String values) {
        return ((String) (firstMap.get(values))).trim();
    }

    //get Second list
    private String[] getSecondList(String fatherid) {
        dcon = new DBConnection();
        String sql =
                "Select childkind_id,childkind_name from ChildKind where fatherkind_id='" +
                fatherid + "'";
        Vector v = dcon.select(sql);
        String Second[] = new String[v.size() + 1];
        for (int i = 0; i < v.size(); i++) {
            String value = ((Vector) v.get(i)).get(0).toString().trim();
            Second[i] = ((Vector) v.get(i)).get(1).toString().trim();
            secondMap.put(Second[i], value);
        }
        return Second;
    }

    //second name _> firstid
    private String getSecondID(String id) {
        return ((String) (secondMap.get(id))).trim();
    }

    //get id
    private String getAssetID(String name) {
        String topid = getSecondID(name);
        dcon = new DBConnection();
        Vector v = dcon.select(
                "select asset_id from Asset where childkind_id = '" +
                topid + "' order by childkind_id asc");
        if (v.size() == 0) {
            return topid + "001";
        }
        int autoID = 1;
        for (int i = 0; i < v.size(); i++) {
            String s = ((Vector) v.get(i)).get(0).toString().trim();
            String Temp;
            if (autoID < 10) {
                Temp = (topid).trim() + "00" + autoID;
            } else if (autoID < 100) {
                Temp = (topid).trim() + "0" + autoID;
            } else {
                Temp = (topid).trim() + autoID;
            }
            if (!Temp.equals(s)) {
                return Temp;
            }
            autoID++;
        }
        if (v.size() < 10) {
            return topid + "00" + (v.size() + 1);
        } else if (v.size() < 100) {
            return topid + "0" + (v.size() + 1);
        } else {
            return topid + (v.size() + 1);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值