📄 billpane.java
字号:
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 + -