📄 productsteldialog.java
字号:
/**
* 源文件:ProductsTelDialog.java
* 作用:手机信息窗体
*/
package mypro;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import java.util.*;
public class ProductsTelDialog extends JDialog implements ActionListener,MouseListener
{
ProductsTelData pd=new ProductsTelData();
Check check=new Check();
String[] sryState={"已卖","退回","换回","未卖"};
private JLabel labImei,labMsnSn,labColor,labMode,labState,labSupplierBrief;
private JTextField txtImei,txtMsnSn,txtColor,txtMode,txtSupplierBrief;
private JButton btnInsert,btnUpdate,btnDelete;
private JComboBox comState;
private JScrollPane scop;
private JTable tabShow;
private DefaultTableModel dtm;
private int row=0;
static
{
//设置窗体为豪华框架
JDialog.setDefaultLookAndFeelDecorated(true);
}
public ProductsTelDialog(MainFrame owner,boolean bo)
{
super(owner,bo);
labImei = new JLabel("*手机串号");
txtImei = new JTextField();
labMsnSn = new JLabel("*品牌");
txtMsnSn = new JTextField();
labColor = new JLabel("*颜色");
txtColor = new JTextField();
labMode = new JLabel("*型号");
txtMode = new JTextField();
labState = new JLabel("*状态");
comState = new JComboBox(sryState);
labSupplierBrief = new JLabel("*供贷商代码");
txtSupplierBrief = new JTextField();
btnInsert = new JButton("插入");
btnUpdate = new JButton("修改");
btnDelete = new JButton("删除");
scop = new JScrollPane();
tabShow = new JTable();
labImei.setBounds(new Rectangle(12, 16, 73, 14));
txtImei.setBounds(new Rectangle(82, 16, 121, 23));
labMsnSn.setBounds(new Rectangle(12, 49, 73, 14));
txtMsnSn.setBounds(new Rectangle(82, 49, 121, 23));
labMode.setBounds(new Rectangle(12, 82, 73, 14));
txtMode.setBounds(new Rectangle(82, 82, 121, 23));
labState.setBounds(new Rectangle(254, 18, 73, 14));
comState.setBounds(new Rectangle(330, 18, 121, 23));
labColor.setBounds(new Rectangle(254, 49, 73, 14));
txtColor.setBounds(new Rectangle(330, 49, 121, 23));
labSupplierBrief.setBounds(new Rectangle(254, 82, 73, 14));
txtSupplierBrief.setBounds(new Rectangle(330, 82, 121, 23));
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(labImei);
me.add(txtImei);
me.add(labMsnSn);
me.add(txtMsnSn);
me.add(labMode);
me.add(txtMode);
me.add(labState);
me.add(comState);
me.add(labColor);
me.add(txtColor);
me.add(labSupplierBrief);
me.add(txtSupplierBrief);
me.add(btnInsert);
me.add(btnDelete);
me.add(btnUpdate);
me.add(scop);
scop.getViewport().add(tabShow);
DatabaseOperate datao = new DatabaseOperate();
dtm = new DefaultTableModel(datao.getDataByTabname("productsTel"),datao.getColumnNamesByTabname("productsTel"));
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 pae)
{
String strbtn=pae.getActionCommand();
if(strbtn.equals("Insert"))
{
String strimei=txtImei.getText().trim();
if(check.checkPrimary("productsTel","手机串号",strimei))
{
JOptionPane.showMessageDialog(null,"该手机串号已存在","提示",JOptionPane.INFORMATION_MESSAGE);
txtImei.setText("");
txtImei.requestFocus();
}
else if(operationBeforeCheck())
{
InsertData ind =new InsertData();
Vector vid =dataVector();
if(ind.ProductsTelInsert(pd))
{
JOptionPane.showMessageDialog(null,"成功插入一行数据","提示",JOptionPane.INFORMATION_MESSAGE);
dtm.addRow(vid);//添加一行到模型的结尾
}
else
{
JOptionPane.showMessageDialog(null,"数据插入失败","提示",JOptionPane.INFORMATION_MESSAGE);
}
}
}
else if(strbtn.equals("Update"))
{
String strimei1=tabShow.getValueAt(row,0).toString().trim();
String strimei=txtImei.getText().trim();
if(!strimei.equals(strimei1))
{
if(check.checkPrimary("sellTel","手机串号",strimei1)||check.checkPrimary("changeTel","换出的手机串号",strimei1))
{
JOptionPane.showMessageDialog(null,"该手机串号被销售信息表和调换信息表引用,禁止更改","提示",JOptionPane.INFORMATION_MESSAGE);
txtImei.setText(strimei1);
}
else if(check.checkUpdataAfterUnique("productsTel","手机串号",strimei,strimei1))
{
JOptionPane.showMessageDialog(null,"该手机串号已存在,无法修改","提示",JOptionPane.INFORMATION_MESSAGE);
txtImei.setText(strimei1);
txtImei.requestFocus();
}
}
else if(operationBeforeCheck())
{
UpdateData upd=new UpdateData();
if(upd.productstelUpdate(pd,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,0).toString().trim();
DeleteData ded=new DeleteData();
if(check.checkPrimary("sellTel","手机串号",strimeid)||check.checkPrimary("changeTel","换出的手机串号",strimeid))
{
JOptionPane.showMessageDialog(null,"该手机串号被销售信息表和调换信息表引用,请先删除或修改其他表中相关数据","提示",JOptionPane.INFORMATION_MESSAGE);
}
else
{
if(ded.deleteDate("productsTel","手机串号",strimeid))
{
JOptionPane.showMessageDialog(null,"成功删除一行数据","提示",JOptionPane.INFORMATION_MESSAGE);
dtm.removeRow(row);//移除模型中 row 位置的行
}
else
{
JOptionPane.showMessageDialog(null,"数据删除失败","提示",JOptionPane.INFORMATION_MESSAGE);
}
}
}
txtImei.setText("");
txtMsnSn.setText("");
txtColor.setText("");
txtMode.setText("");
txtSupplierBrief.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 strimei=(String)tabShow.getValueAt(row,0);
String strms=(String)tabShow.getValueAt(row,1);
String strcol=(String)tabShow.getValueAt(row,2);
String strmod=(String)tabShow.getValueAt(row,3);
String strsta=(String)tabShow.getValueAt(row,4);
String strsub=(String)tabShow.getValueAt(row,5);
txtImei.setText(strimei.trim());
txtMsnSn.setText(strms.trim());
txtColor.setText(strcol.trim());
txtMode.setText(strmod.trim());
comState.setSelectedItem(strsta.trim());
txtSupplierBrief.setText(strsub.trim());
}
/* 执行操作前对数据进行验证*/
public boolean operationBeforeCheck()
{
Check check=new Check();
String strimei=txtImei.getText().trim();
String strms=txtMsnSn.getText().trim();
String strcol=txtColor.getText().trim();
String strmod=txtMode.getText().trim();
String strsta=(String)(comState.getSelectedItem());
String strsub=txtSupplierBrief.getText().trim();
pd.setImei(strimei);
pd.setMsn(strms);
pd.setColor(strcol);
pd.setModel(strmod);
pd.setState(strsta);
pd.setSupplierBrief(strsub);
if(strimei.length()==0||strms.length()==0||strcol.length()==0||strmod.length()==0||strsub.length()==0)
{
JOptionPane.showMessageDialog(null,"带*号的必填,请填写完整","提示",JOptionPane.INFORMATION_MESSAGE);
return false;
}
else if(strimei.length()>20)
{
JOptionPane.showMessageDialog(null,"请填写20位以内IMEI","提示",JOptionPane.INFORMATION_MESSAGE);
txtImei.setText("");
txtImei.requestFocus();
return false;
}
else if(!(check.checkImeiAndlabSupplierBrief(strimei,strsub)))
{
JOptionPane.showMessageDialog(null,"与进货信息表不同","提示",JOptionPane.INFORMATION_MESSAGE);
txtSupplierBrief.setText("");
txtSupplierBrief.requestFocus();
return false;
}
else if(!(check.checkPrimary("stockTel","手机串号",strimei)))
{
JOptionPane.showMessageDialog(null,"没进此手机","提示",JOptionPane.INFORMATION_MESSAGE);
txtImei.setText("");
txtImei.requestFocus();
return false;
}
else if(check.checkPrimary("backTel","手机串号",strimei)&&(!strsta.equals("退回")))
{
JOptionPane.showMessageDialog(null,"此手机已退回","提示",JOptionPane.INFORMATION_MESSAGE);
return false;
}
else if(check.checkPrimary("changeTel","换回的手机串号",strimei)&&(!strsta.equals("换回")))
{
JOptionPane.showMessageDialog(null,"此手机已换回","提示",JOptionPane.INFORMATION_MESSAGE);
return false;
}
else if(check.checkPrimary("sellTel","手机串号",strimei)&&(!strsta.equals("已卖")))
{
JOptionPane.showMessageDialog(null,"此手机已卖出","提示",JOptionPane.INFORMATION_MESSAGE);
return false;
}
else if(check.checkPrimary("changeTel","换出的手机串号",strimei)&&(!strsta.equals("已卖")))
{
JOptionPane.showMessageDialog(null,"此手机已卖出","提示",JOptionPane.INFORMATION_MESSAGE);
return false;
}
else
{
return true;
}
}
/*得到一行加入模型中的数据*/
public Vector dataVector()
{
Vector vd=new Vector();
vd.add(pd.getImei());
vd.add(pd.getMsn());
vd.add(pd.getColor());
vd.add(pd.getmModel());
vd.add(pd.getState());
vd.add(pd.getSupplierBrief());
return vd;
}
/*修改表模型中的数据*/
public void changeRowData()
{
tabShow.setValueAt(pd.getImei(),row,0);
tabShow.setValueAt(pd.getMsn(),row,1);
tabShow.setValueAt(pd.getColor(),row,2);
tabShow.setValueAt(pd.getmModel(),row,3);
tabShow.setValueAt(pd.getState(),row,4);
tabShow.setValueAt(pd.getSupplierBrief(),row,5);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -