⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 billpane.java

📁 Jbuilder编写的纱线制衣厂的仓库管理系统(学习java时做的一个系统)源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package yarn;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
import javax.swing.*;
import com.borland.jbcl.layout.XYConstraints;
import java.awt.event.ActionEvent;
import javax.swing.table.TableModel;
import java.sql.ResultSet;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.border.TitledBorder;
import com.borland.jbcl.layout.XYLayout;
import javax.swing.border.Border;
import java.awt.Color;
import java.sql.Statement;
import java.awt.BorderLayout;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.util.*;
import javax.swing.table.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.event.FocusListener;
import java.awt.event.FocusEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
public class BillPane extends JPanel
{
    String maker;
    JDBCFile jf;
    Statement st;
    JTable jTable2 = new JTable();
    JLabel jLabel4 = new JLabel();
    JLabel jLabel5 = new JLabel();
    JLabel jLabel6 = new JLabel();
    JLabel jLabel7 = new JLabel();
    JLabel jLabel9 = new JLabel();
    JLabel jLabel8 = new JLabel();
    JLabel jLabel10 = new JLabel();
    JLabel jLabel11 = new JLabel();
    JLabel jLabel12 = new JLabel();
    JLabel jLabel13 = new JLabel();
    JLabel jLabel14 = new JLabel();
    JTextField billInIDTF = new JTextField();
    JTextField jTextField2 = new JTextField();
    JComboBox billInTypeCB = new JComboBox();
    JTextField billInMakerTF = new JTextField();
    JToolBar jToolBar1 = new JToolBar();
    JButton jButton1 = new JButton();
    JScrollPane jScrollPane2 = new JScrollPane();
    JTextField jTextField4 = new JTextField();
    JTextField jTextField5 = new JTextField();
    JToolBar jToolBar2 = new JToolBar();
    JButton jButton5 = new JButton();
    JButton jButton6 = new JButton();
    JButton jButton3 = new JButton();
    JButton jButton4 = new JButton();
    JTextField jTextField6 = new JTextField();
    JPanel jPanel1 = new JPanel();
    JPanel jPanel2 = new JPanel();
    JTextField jTextField3 = new JTextField();
    JComboBox jComboBox1 = new JComboBox();
    JComboBox jComboBox2 = new JComboBox();
    JComboBox YIDComboBox = new JComboBox();
    ButtonGroup buttonGroup1 = new ButtonGroup();
    JRadioButton jRadioButton1 = new JRadioButton();
    JRadioButton jRadioButton2 = new JRadioButton();
    JScrollPane jScrollPane1 = new JScrollPane();
    JTable jTable1 = new JTable();
    JSpinner jSpinner1 = new JSpinner();
    XYLayout xYLayout4 = new XYLayout();
    TitledBorder titledBorder1 = new TitledBorder("");
    TitledBorder titledBorder5 = new TitledBorder("");
    XYLayout xYLayout3 = new XYLayout();
    TitledBorder titledBorder10 = new TitledBorder("");
    Border border1 = BorderFactory.createEtchedBorder(Color.white,
            new Color(165, 169, 174));
    Border border2 = new TitledBorder(border1, "纱线明细");
    Border border3 = BorderFactory.createCompoundBorder(border2, titledBorder1);
    XYLayout xYLayout5 = new XYLayout();
    BorderLayout borderLayout1 = new BorderLayout();
    JComboBox yarnIDJComboBox = new JComboBox();
    JButton jButton2 = new JButton();
    public BillPane()
    {
        try
      {
          jbInit();
      }
      catch (Exception e)
      {
          e.printStackTrace();
      }
    }
    public BillPane(JDBCFile jf)
    {
            this.jf = jf;
            try
       {
           jbInit();
       }
       catch (Exception e)
       {
           e.printStackTrace();
       }

    }

    private void jbInit() throws Exception
    {
        st = jf.getStatement(); //建立连接返回一个默认Statement对象
        this.setLayout(borderLayout1);
        this.setBorder(titledBorder5);
        this.setToolTipText("");
        this.setLayout(xYLayout3);
        jButton1.addActionListener(new BillPane_jButton1_actionAdapter(this));
        jToolBar1.setBorder(BorderFactory.createEtchedBorder());
        billInMakerTF.setEditable(false);
        billInIDTF.setEditable(false);
        jScrollPane2.setBorder(BorderFactory.createEtchedBorder());
        jToolBar2.setBorder(BorderFactory.createEtchedBorder());
        jLabel11.setText("总重量");
        jLabel12.setText("总金额");
        jLabel13.setText("查询");
        jLabel14.setText("仓库余量");
        jLabel4.setText("入库单号");
        jLabel5.setText("入库日期");
        jLabel6.setText("单据类型");
        jLabel7.setText("制单人");
        jLabel9.setText("原始单号");
        jLabel8.setText("客  户");
        jLabel10.setText("入库仓库");
        jButton1.setText("新建单据");
        jButton3.setText("删除单据");
        jButton4.setText("保存单据");
        jButton5.setText("增加明细项");
        jButton5.addActionListener(new BillPane_jButton5_actionAdapter(this));
        jButton6.setText("删除明细项");
        jButton6.addActionListener(new BillPane_jButton6_actionAdapter(this));
        jTextField6.setEditable(false);
        jLabel8.setToolTipText("");
        jLabel8.setHorizontalAlignment(SwingConstants.CENTER);
        jPanel1.setLayout(xYLayout4);
        jPanel1.setBorder(border2);
        jPanel2.setLayout(xYLayout5);
        jPanel2.setBorder(titledBorder10);
        jRadioButton1.setText("按纱线ID");
        jRadioButton1.setSelected(true);
        jRadioButton1.addItemListener(new BillPane_jRadioButton_itemAdapter(this));
        jRadioButton1.setEnabled(false);
        jRadioButton2.setEnabled(false);
        jRadioButton2.setText("按客色");
        jRadioButton2.addItemListener(new BillPane_jRadioButton_itemAdapter(this));
        jButton2.setEnabled(false);
        jButton3.setEnabled(false);
        jButton4.setEnabled(false);
        jButton5.setEnabled(false);
        jButton6.setEnabled(false);
        jScrollPane1.setBorder(BorderFactory.createEtchedBorder());
        jTable1.setColumnSelectionAllowed(false);
        jTable1.setRowSelectionAllowed(true);
        jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        titledBorder10 = new TitledBorder(BorderFactory.createEtchedBorder(
                Color.white, new Color(165, 169, 174)), "查询纱线");
        border3 = BorderFactory.createCompoundBorder(new TitledBorder("纱线明细"),
                titledBorder1);
        xYLayout3.setWidth(815);
        xYLayout3.setHeight(510);
        jButton2.setText("新增纱线");
        jPanel1.add(jScrollPane2, new XYConstraints(12, 8, 630, 210));
        jScrollPane1.getViewport().add(jTable1);
        jScrollPane2.getViewport().add(jTable2);
        jToolBar1.add(jButton1);
        jToolBar1.add(jButton3);
        jToolBar1.add(jButton4);
        jToolBar2.add(jButton5);
        jToolBar2.add(jButton6);
        jToolBar2.add(jButton2);
        buttonGroup1.add(jRadioButton1);
        buttonGroup1.add(jRadioButton2);
        jPanel2.add(jLabel13, new XYConstraints(15, 70, -1, -1));
        jPanel1.add(jTextField5, new XYConstraints(537, 236, 77, -1));
        jPanel1.add(jLabel11, new XYConstraints(335, 239, -1, -1));
        jPanel1.add(jTextField4, new XYConstraints(384, 236, 77, -1));
        jPanel1.add(jLabel12, new XYConstraints(487, 239, -1, -1));
        jPanel2.add(jTextField3, new XYConstraints(49, 67, 78, -1));
        jPanel2.add(jScrollPane1, new XYConstraints(144, 4, 498, 87));
        jPanel2.add(jRadioButton1, new XYConstraints(31, 6, -1, -1));
        jPanel2.add(jRadioButton2, new XYConstraints(31, 37, -1, -1));
        this.add(jLabel14, new XYConstraints(555, 75, -1, -1));
        this.add(jLabel4, new XYConstraints(39, 49, -1, -1));
        this.add(jLabel9, new XYConstraints(220, 49, -1, -1));
        this.add(jLabel10, new XYConstraints(388, 75, -1, -1));
        this.add(billInMakerTF, new XYConstraints(613, 48, 77, -1));
        this.add(jLabel5, new XYConstraints(388, 49, -1, -1));
        this.add(jLabel7, new XYConstraints(562, 49, -1, -1));
        this.add(jLabel6, new XYConstraints(39, 75, -1, -1));
        this.add(jLabel8, new XYConstraints(216, 75, 48, -1));
        this.add(jToolBar1, new XYConstraints(0, 0, 723, 35));
        this.add(billInIDTF, new XYConstraints(99, 48, 96, -1));
        this.add(billInTypeCB, new XYConstraints(99, 73, 96, 20));
        this.add(jTextField2, new XYConstraints(276, 48, 96, -1));
        this.add(jTextField6, new XYConstraints(613, 72, 77, -1));
        this.add(jPanel1, new XYConstraints(29, 230, 665, 295));
        this.add(jPanel2, new XYConstraints(29, 98, 665, 124));
        this.add(jComboBox2, new XYConstraints(448, 72, 95, 20));
        this.add(jComboBox1, new XYConstraints(276, 73, 96, 20));
        this.add(jSpinner1, new XYConstraints(448, 48, 95, -1));
        jPanel1.add(jToolBar2, new XYConstraints(14, 230, 195, 30));
    }

    public void jComboBox2_itemStateChanged(ItemEvent e)
    {
        jTextField6.setText(String.valueOf(storageRemain()));
    }

    public void jButton1_actionPerformed(ActionEvent e)
    {
        //设置各项的默认数据
        billInTypeCB.addItem("正常");
        billInTypeCB.addItem("回纱");
        jComboBox1.addItem("微软");
        jComboBox1.addItem("长江实业");
        jComboBox1.addItem("塔利班基地组织");
        jComboBox1.addItem("华尔街");
        jComboBox1.addItem("基督教");
        jComboBox1.addItem("沃尔玛");
        jComboBox2.addItem("SX1");
        jComboBox2.addItem("SX2");
        jSpinner1.setModel(new SpinnerDateModel());
        jRadioButton1.setEnabled(true);
        jRadioButton2.setEnabled(true);
        jButton2.setEnabled(true);
        jButton3.setEnabled(true);
        jButton4.setEnabled(true);
        jButton5.setEnabled(true);
        jButton6.setEnabled(true);
        //为增加明细按钮添加活动监听
        jButton5.addActionListener(new BillPane_jButton5_actionAdapter(this));
        //为仓库选择文本框添加物品监听
        jComboBox2.addItemListener(new BillPane_jComboBox2_itemAdapter(this));
        //为文本查询栏添加文档监听
        jTextField3.getDocument().addDocumentListener(new BillPane_jTextField3_DocumentAdapter(this));
        //为查询纱线列表添加鼠标双击监听
        jTable1.addMouseListener(new BillPane_tableDoubleClick_MouseListener(this));
        //为明细表设置表格模式
        String[] itemColumnName = {"明细项","纱线ID","色名","品种规格","缸号","尾纱","重量","单价"};
        YarnTableModel billInItemModel = new YarnTableModel(new Vector(),itemColumnName,2);
        jTable2.setModel(billInItemModel);


        //增加明细栏的明细数
        ((YarnTableModel)jTable2.getModel()).addTableItem();
        //查找最大单号加1并且填进单号的填写栏,即新建单据令单号加1
        try {
            ResultSet rs = st.executeQuery("select BInID from BillIn order by BInID desc");
            rs.next();
            String temp = rs.getString(1); //temp为临时存储单号的变量
            //对单号加一并显示
            String temp1 = String.valueOf(Integer.valueOf(temp.substring(1))+1);
            int numz = temp.length() - temp1.length();
            char[] temp2 =new char[numz-1];
            for(int i = 0 ; i<numz-1 ; i++)
            {
                temp2[i] = '0';
            }
            billInIDTF.setText(temp.charAt(0)+String.valueOf(temp2)+temp1);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        //Date d = new Date();
        //将在登陆时的用户填进制表人栏
        billInMakerTF.setText(maker);
        //将storageRemain()方法得到的结果以字符串显示在剩余库存栏
        jTextField6.setText(String.valueOf(storageRemain()));
        //在数据库总查找纱线资料
        ResultSet rs = lookUpYarn_ID(jTextField3.getText());

        //j是对ResultSet进行遍历时用的变量
        String[] findColumnName = {"纱线ID", "色号", "色名", "品种规格", "客户", "客户色号"};
        tableDisplay(rs,findColumnName);

        //设置表格的纱线ID填写栏的编辑器为组合框,并且设置组合框的基本信息
        Vector comboBoxItem = new Vector();
        try//从数据库查找组合框的基本信息
        {

            rs = jf.executeQuery("select YID from Yarn");
            while(rs.next())
            {
                comboBoxItem.addElement(rs.getString(1));
            }
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        yarnIDJComboBox = new JComboBox(comboBoxItem);
        yarnIDJComboBox.setEditable(true);
        //yarnIDJComboBox.getEditor().addActionListener(new BillPane_yarnIDJComboBoxEditor_ActionListener(this));
        //yarnIDJComboBox.addFocusListener(new BillPane_yarnIDJComboBoxFocus_FocusListener(this));
        //yarnIDJComboBox.addItemListener(new BillPane_yarnIDJComboBoxItem_ItemListener(this));
        //设置明细表的纱线ID编辑器为JComboBox
        jTable2.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(yarnIDJComboBox));
        //加入表格的第二栏的单元改变监听
        jTable2.getColumnModel().getColumn(1).getCellEditor().addCellEditorListener(new BillPane_yarnIDJComboBoxCell_CellListener(this));
        //jTable2.getColumnModel().getColumn(5).setCellEditor(new DefaultCellEditor(new JCheckBox()));
        jTable2.getColumnModel().getColumn(4).setCellEditor(new DefaultCellEditor(new JTextField()));
        jTable2.getColumnModel().getColumn(6).setCellEditor(new DefaultCellEditor(new JTextField()));
        jTable2.getColumnModel().getColumn(7).setCellEditor(new DefaultCellEditor(new JTextField()));
        jTable2.getColumnModel().getColumn(6).getCellEditor().addCellEditorListener(new BillPane_yarnMWJTextFieldCell_CellListener(this));
        jTable2.getColumnModel().getColumn(7).getCellEditor().addCellEditorListener(new BillPane_yarnMWJTextFieldCell_CellListener(this));
    }
    //双击事件监听实现方法
    public void tableDoubleClick(MouseEvent e)
    {
        int rowCount;
        Object[] signalrowData = new Object[8];
        rowCount = jTable1.getSelectedRow();
        signalrowData[1] = jTable1.getValueAt(rowCount,0);
        signalrowData[2] = jTable1.getValueAt(rowCount,1);
        signalrowData[3] = jTable1.getValueAt(rowCount,3);
        signalrowData[5] = false;
        YarnTableModel temp = (YarnTableModel)jTable2.getModel();
        temp.setLastNonFillRow(signalrowData);
    }
    //将数据集结果写进表格的方法
    private void tableDisplay(ResultSet rs,String[] columnName)
    {
        //将数据库得到的结果放进rowData中
        try {
            Vector rowData = new Vector();
            if(rs.next())
            do
                {
                    //临时Object数组对象,保存ResultSet读取的单行数据
                    Object[] temp = new Object[rs.getMetaData().getColumnCount()];
                    for (int i = 0; i < rs.getMetaData().getColumnCount();
                                 i++)
                    {
                        temp[i] = rs.getString(i + 1);
                    }
                    rowData.addElement(temp);
                }
            while(rs.next());
            //为纱线查询框设置TableModel
            YarnTableModel yarnInModel = new YarnTableModel(
            rowData,
            columnName);
            jTable1.setModel(yarnInModel);
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }
    //查找剩余库存方法,需要把输入查询仓库条件的JComboBox作参数
    private float storageRemain()
    {
        float temp = 0; //临时变量temp存储在数据库查找的最大容量
        //查找库存的剩余库存并显示在剩余容量栏
        try {
            ResultSet rs = st.executeQuery(
                    "select Mcontent from Storage where SID ='" +
                    (String) jComboBox2.getSelectedItem() + "'");
            rs.next();
            temp = rs.getFloat(1);
            //查找入库仓库栏的默认仓库的总货物重量
            rs = st.executeQuery("select SUM(YWeight) from Goods where SID ='" +
                                 (String) jComboBox2.getSelectedItem() + "'");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -