📄 sellteldialog.java
字号:
/**
* 源文件:SellTelDialog.java
* 作用:销售信息窗体
*/
package mypro;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;
public class SellTelDialog extends JDialog implements ActionListener,MouseListener
{
SellTelData sed=new SellTelData();
Check check=new Check();
private JLabel labSellInvoice,labImei,labSellPrice,labSellDate,labUserCode,labCustomerCode,labContents;
private JTextField txtSellInvoice,txtImei,txtSellPrice,txtSellDate,txtUserCode,txtCustomerCode;
private JButton btnInsert,btnUpdate,btnDelete;
private JTextArea teaContents;
private JScrollPane scop,scop1;
private JTable tabShow;
private DefaultTableModel dtm;
private int row=0;
static
{
//设置窗体为豪华框架
JDialog.setDefaultLookAndFeelDecorated(true);
}
public SellTelDialog(MainFrame owner,boolean bo)
{
super(owner,bo);
labSellInvoice = new JLabel("*销售单号");
txtSellInvoice = new JTextField();
labImei = new JLabel("*手机串号");
txtImei = new JTextField();
labSellPrice = new JLabel("*销售单价");
txtSellPrice = new JTextField();
labSellDate = new JLabel("*销售日期");
txtSellDate = new JTextField();
labUserCode = new JLabel("*工号");
txtUserCode = new JTextField();
labCustomerCode = new JLabel("*顾客编号");
txtCustomerCode = new JTextField();
labContents = new JLabel("备注信息");
teaContents = new JTextArea();
btnInsert = new JButton("插入");
btnUpdate = new JButton("修改");
btnDelete = new JButton("删除");
scop = new JScrollPane();
scop1 = new JScrollPane();
tabShow = new JTable();
labSellInvoice.setBounds(new Rectangle(12, 16, 73, 14));
txtSellInvoice.setBounds(new Rectangle(82, 16, 121, 23));
labImei.setBounds(new Rectangle(12, 49, 73, 14));
txtImei.setBounds(new Rectangle(82, 49, 121, 23));
labSellPrice.setBounds(new Rectangle(12, 82, 73, 14));
txtSellPrice.setBounds(new Rectangle(82, 82, 121, 23));
labSellDate.setBounds(new Rectangle(12, 114, 73, 14));
txtSellDate.setBounds(new Rectangle(82, 114, 121, 23));
labUserCode.setBounds(new Rectangle(254, 18, 73, 14));
txtUserCode.setBounds(new Rectangle(330, 18, 121, 23));
labCustomerCode.setBounds(new Rectangle(254, 49, 73, 14));
txtCustomerCode.setBounds(new Rectangle(330, 49, 121, 23));
labContents.setBounds(new Rectangle(254, 82, 73, 14));
scop1.setBounds(new Rectangle(330, 82, 121, 55));
btnInsert.setBounds(new Rectangle(12, 148, 89, 28));
btnInsert.setActionCommand("Insert");
btnInsert.setToolTipText("插入新的销售信息");
btnUpdate.setBounds(new Rectangle(187, 148, 89, 28));
btnUpdate.setActionCommand("Update");
btnUpdate.setToolTipText("修改销售信息");
btnDelete.setBounds(new Rectangle(362, 148, 89, 28));
btnDelete.setActionCommand("Delete");
btnDelete.setToolTipText("删除销售信息");
scop.setBounds(new Rectangle(12, 190, 439, 98));
btnInsert.addActionListener(this);
btnUpdate.addActionListener(this);
btnDelete.addActionListener(this);
tabShow.addMouseListener(this);
Container me=this.getContentPane();
me.setLayout(null);
me.add(labSellInvoice);
me.add(txtSellInvoice);
me.add(labImei);
me.add(txtImei);
me.add(labSellPrice);
me.add(txtSellPrice);
me.add(labSellDate);
me.add(txtSellDate);
me.add(labUserCode);
me.add(txtUserCode);
me.add(labCustomerCode);
me.add(txtCustomerCode);
me.add(labContents);
me.add(btnInsert);
me.add(btnDelete);
me.add(btnUpdate);
me.add(scop);
me.add(scop1);
scop1.getViewport().add(teaContents);
scop.getViewport().add(tabShow);
DatabaseOperate datao = new DatabaseOperate();
dtm = new DefaultTableModel(datao.getDataByTabname("sellTel"),datao.getColumnNamesByTabname("sellTel"));
tabShow.setModel(dtm);//通过dtm模型构造表
tabShow.setAutoResizeMode(tabShow.AUTO_RESIZE_OFF);//当调整表的大小时,设置表的自动调整模式为不自动调整列的宽度;使用滚动条
this.setTitle("销售信息");
this.setSize(480,380);
this.setLocationRelativeTo(this);
this.setResizable(false);
this.setVisible(true);
}
public void actionPerformed(ActionEvent seae)
{
String strbtn=seae.getActionCommand();
if(strbtn.equals("Insert"))
{
String strimei=txtImei.getText().trim();
if(check.checkPrimary("sellTel","手机串号",strimei))
{
JOptionPane.showMessageDialog(null,"该手机串号已存在","提示",JOptionPane.INFORMATION_MESSAGE);
txtImei.setText("");
txtImei.requestFocus();
}
else if(operationBeforeCheck())
{
InsertData ind =new InsertData();
Vector vid = dataVector();
if(ind.SellTelInsert(sed))
{
JOptionPane.showMessageDialog(null,"成功插入一行数据,请修改手机状态信息","提示",JOptionPane.INFORMATION_MESSAGE);
dtm.addRow(vid);//添加一行到模型的结尾
new ProductsTelDialog(null,true);
}
else
{
JOptionPane.showMessageDialog(null,"数据插入失败","提示",JOptionPane.INFORMATION_MESSAGE);
}
}
}
else if(strbtn.equals("Update"))
{
String strimei1=tabShow.getValueAt(row,1).toString().trim();
String strimei=txtImei.getText().trim();
if(!strimei.equals(strimei1))
{
if(check.checkPrimary("changeTel","换出的手机串号",strimei1))
{
JOptionPane.showMessageDialog(null,"该手机串号被调换信息表引用,禁止更改","提示",JOptionPane.INFORMATION_MESSAGE);
txtImei.setText(strimei1);
}
else if(check.checkUpdataAfterUnique("sellTel","手机串号",strimei,strimei1))
{
JOptionPane.showMessageDialog(null,"该手机串号已存在,无法修改","提示",JOptionPane.INFORMATION_MESSAGE);
txtImei.setText(strimei1);
txtImei.requestFocus();
}
}
else if(operationBeforeCheck())
{
UpdateData upd=new UpdateData();
if(upd.sellTelUpdate(sed,strimei1))
{
JOptionPane.showMessageDialog(null,"成功修改一行数据","提示",JOptionPane.INFORMATION_MESSAGE);
changeRowData();//修改表模型中的数据
}
else
{
JOptionPane.showMessageDialog(null,"数据修改失败","提示",JOptionPane.INFORMATION_MESSAGE);
}
}
}
else if(strbtn.equals("Delete"))
{
String strimeid=tabShow.getValueAt(row,1).toString().trim();
DeleteData ded=new DeleteData();
if(check.checkPrimary("changeTel","换出的手机串号",strimeid))
{
JOptionPane.showMessageDialog(null,"该手机串号被调换信息表引用,请先删除或修改其他表中相关数据","提示",JOptionPane.INFORMATION_MESSAGE);
}
else
{
if(ded.deleteDate("sellTel","手机串号",strimeid))
{
JOptionPane.showMessageDialog(null,"成功删除一行数据","提示",JOptionPane.INFORMATION_MESSAGE);
dtm.removeRow(row);//移除模型中 row 位置的行
}
else
{
JOptionPane.showMessageDialog(null,"数据删除失败","提示",JOptionPane.INFORMATION_MESSAGE);
}
}
}
txtSellInvoice.setText("");
txtImei.setText("");
txtSellPrice.setText("");
txtSellDate.setText("");
txtUserCode.setText("");
txtCustomerCode.setText("");
teaContents.setText("");
}
/*单击表中的一行将数据返回到组件中*/
public void mouseEntered(MouseEvent me){}
public void mouseExited(MouseEvent me){}
public void mousePressed(MouseEvent me){}
public void mouseReleased(MouseEvent me){}
public void mouseClicked(MouseEvent me)
{
row=tabShow.getSelectedRow();
String strsei=String.valueOf(tabShow.getValueAt(row,0));
String strimei=(String)tabShow.getValueAt(row,1);
String strsp=String.valueOf(tabShow.getValueAt(row,2));
String strsed=(String)tabShow.getValueAt(row,3);
String strucode=(String)tabShow.getValueAt(row,4);
String strccode=String.valueOf(tabShow.getValueAt(row,5));
String strcots=(String)tabShow.getValueAt(row,6);
txtSellInvoice.setText(strsei.trim());
txtImei.setText(strimei.trim());
txtSellPrice.setText(strsp.trim());
txtSellDate.setText(strsed.trim());
txtUserCode.setText(strucode.trim());
txtCustomerCode.setText(strccode.trim());
if(strcots==null)
{
teaContents.setText(strcots);
}
else
{
teaContents.setText(strcots.trim());
}
}
/* 执行操作前对数据进行验证*/
public boolean operationBeforeCheck()
{
int strsei=0;
double strsp=0;
try
{
strsei=Integer.parseInt(txtSellInvoice.getText().trim());
strsp=Double.parseDouble(txtSellPrice.getText().trim());
}
catch(NumberFormatException ne)
{
JOptionPane.showMessageDialog(null,"请输入数字","提示",JOptionPane.INFORMATION_MESSAGE);
return false;
}
String strimei=txtImei.getText().trim();
String strsed=txtSellDate.getText().trim();
String strucode=txtUserCode.getText().trim();
int strccode=0;
try
{
strccode=Integer.parseInt(txtCustomerCode.getText().trim());
}
catch(NumberFormatException ne)
{
JOptionPane.showMessageDialog(null,"请输入4位以内整数","提示",JOptionPane.INFORMATION_MESSAGE);
return false;
}
String strcots=teaContents.getText().trim();
if(strcots.equals(""))
{
strcots=null;
}
sed.setSellInvoice(strsei);
sed.setImei(strimei);
sed.setSellPrice(strsp);
sed.setSellDate(strsed);
sed.setUserCode(strucode);
sed.setCustomerCode(strccode);
sed.setContents(strcots);
if(strsei==0||strimei.length()==0||strsp==0||strsed.length()==0||strucode.length()==0||strccode==0)
{
JOptionPane.showMessageDialog(null,"带*号的必填,请填写完整","提示",JOptionPane.INFORMATION_MESSAGE);
return false;
}
else if(strsei>9999&&strsei<0)
{
JOptionPane.showMessageDialog(null,"请输入4位以内整数","提示",JOptionPane.INFORMATION_MESSAGE);
txtSellInvoice.setText("");
txtSellInvoice.requestFocus();
return false;
}
else if(!(check.checkPrimary("productsTel","手机串号",strimei)))
{
JOptionPane.showMessageDialog(null,"无此手机信息","提示",JOptionPane.INFORMATION_MESSAGE);
txtImei.setText("");
txtImei.requestFocus();
return false;
}
else if(strsp<0)
{
JOptionPane.showMessageDialog(null,"请输入8位以内数字","提示",JOptionPane.INFORMATION_MESSAGE);
txtSellPrice.setText("");
txtSellPrice.requestFocus();
return false;
}
else if(!check.checkDate(strsed))
{
JOptionPane.showMessageDialog(null,"请输入准确的,如1996-02-03格式的日期","提示",JOptionPane.INFORMATION_MESSAGE);
txtSellDate.setText("");
txtSellDate.requestFocus();
return false;
}
else if(!(check.checkPrimary("users","工号",strucode)))
{
JOptionPane.showMessageDialog(null,"无此员工信息","提示",JOptionPane.INFORMATION_MESSAGE);
txtUserCode.setText("");
txtUserCode.requestFocus();
return false;
}
else if(!(check.checkPrimary("customers","顾客编号",strccode)))
{
JOptionPane.showMessageDialog(null,"无此顾客信息","提示",JOptionPane.INFORMATION_MESSAGE);
txtCustomerCode.setText("");
txtCustomerCode.requestFocus();
return false;
}
else if(!check.checkTelWhetherExist("未卖",strimei))
{
JOptionPane.showMessageDialog(null,"手机已售出","提示",JOptionPane.INFORMATION_MESSAGE);
txtImei.setText("");
txtImei.requestFocus();
return false;
}
else if(strcots!=null&&strcots.length()>25)
{
JOptionPane.showMessageDialog(null,"字数过长","提示",JOptionPane.INFORMATION_MESSAGE);
teaContents.setText("");
teaContents.requestFocus();
return false;
}
else
{
return true;
}
}
/*得到一行加入模型中的数据*/
public Vector dataVector()
{
Vector vd=new Vector();
vd.add(sed.getSellInvoice());
vd.add(sed.getImei());
vd.add(sed.getSellPrice());
vd.add(sed.getSellDate());
vd.add(sed.getUserCode());
vd.add(sed.getCustomerCode());
vd.add(sed.getContents());
return vd;
}
/*修改表模型中的数据*/
public void changeRowData()
{
tabShow.setValueAt(sed.getSellInvoice(),row,0);
tabShow.setValueAt(sed.getImei(),row,1);
tabShow.setValueAt(sed.getSellPrice(),row,2);
tabShow.setValueAt(sed.getSellDate(),row,3);
tabShow.setValueAt(sed.getUserCode(),row,4);
tabShow.setValueAt(sed.getCustomerCode(),row,5);
tabShow.setValueAt(sed.getContents(),row,6);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -