📄 consign[anank].java
字号:
import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.table.* ;
import javax.swing.event.ListSelectionListener ;//用ListSelectionListener和ListSelectionEvent的时候好像要单独引入!~
import javax.swing.event.ListSelectionEvent ;
import java.util.Date ;
public class Consign
{
static int consignNumber = 1000 ;
public Consign()
{
JFrame.setDefaultLookAndFeelDecorated(true);//把JFrame设置城修饰的外观!
final JFrame frame = new JFrame("寄存物品设置") ;
frame.setSize(700, 500) ;
Container content = frame.getContentPane() ;
content.setLayout(new BorderLayout()) ;
GridBagLayout gbl = new GridBagLayout() ;
GridBagConstraints gbc = new GridBagConstraints() ;
JPanel panUp = new JPanel() ;
panUp.setLayout(gbl) ;
//添加JLabel-寄存人姓名!
final JLabel lblName = new JLabel("寄存人姓名", SwingConstants.LEFT) ;
gbc.gridx = 0 ;
gbc.gridy = 0 ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbc.insets = new Insets(10, 10, 10, 10) ;
gbl.setConstraints(lblName, gbc) ;
panUp.add(lblName) ;
//添加JTextField-寄存人姓名
final JTextField txtName = new JTextField(10) ;
gbc.gridx++ ;
gbc.gridy = 0 ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(txtName, gbc) ;
panUp.add(txtName) ;
//添加JComboBox-性别
final JLabel lblSex = new JLabel("性别", SwingConstants.CENTER) ;
gbc.gridx++ ;
gbc.gridy = 0 ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(lblSex, gbc) ;
panUp.add(lblSex) ;
//
String[] itemsSex = {"男", "女"} ;
final JComboBox comboxSex = new JComboBox(itemsSex) ;
gbc.gridx++ ;
gbc.gridy = 0 ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbc.ipadx = 70 ;
gbc.ipady = -6 ;
gbl.setConstraints(comboxSex, gbc) ;
panUp.add(comboxSex) ;
gbc.ipadx = 0 ;
gbc.ipady = 0 ;
//
final JLabel lblPassword = new JLabel("密码", SwingConstants.CENTER) ;
gbc.gridx++ ;
gbc.gridy = 0 ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(lblPassword, gbc) ;
panUp.add(lblPassword) ;
//
final JPasswordField txtPassword = new JPasswordField(10) ;
gbc.gridx++ ;
gbc.gridy = 0 ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(txtPassword, gbc) ;
panUp.add(txtPassword) ;
//
final JLabel lblConName = new JLabel("寄存品名",SwingConstants.CENTER) ;
gbc.gridx = 0 ;
gbc.gridy = 1 ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(lblConName, gbc) ;
panUp.add(lblConName) ;
//
final JTextField txtConName = new JTextField(10) ;
gbc.gridx++ ;
gbc.gridy = 1;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(txtConName, gbc) ;
panUp.add(txtConName) ;
//
final JLabel lblConCount = new JLabel("数量", SwingConstants.CENTER) ;
gbc.gridx ++ ;
gbc.gridy = 1;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(lblConCount, gbc) ;
panUp.add(lblConCount) ;
//
final JTextField txtConCount = new JTextField(10) ;
txtConCount.setText("1") ;
/*
*总结:关于String和int转换的时候一定注意的特殊情况:
* 最好要对String进行初始化,如果不这样做,在String-""的时候
* 将会发生转化异常!
*/
gbc.gridx++ ;
gbc.gridy = 1;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(txtConCount, gbc) ;
panUp.add(txtConCount) ;
//
final JLabel lblPrice = new JLabel("估价", SwingConstants.CENTER) ;
gbc.gridx++ ;
gbc.gridy = 1;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(lblPrice, gbc) ;
panUp.add(lblPrice) ;
//
final JTextField txtPrice = new JTextField(10) ;
txtPrice.setText("0") ;
gbc.gridx++ ;
gbc.gridy = 1 ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(txtPrice, gbc) ;
panUp.add(txtPrice) ;
//
final JLabel lblBeginTime = new JLabel("寄存日期") ;
gbc.gridx = 0 ;
gbc.gridy++ ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(lblBeginTime, gbc) ;
panUp.add(lblBeginTime) ;
//
final JTextField txtBeginTime = new JTextField(10) ;
java.util.Date date = new java.util.Date() ;
long longValue = date.getTime() ;
java.sql.Date sqlDate = new java.sql.Date(longValue) ;
String strSqlDate = sqlDate.toString() ;
txtBeginTime.setText(strSqlDate) ;
txtBeginTime.setEditable(false) ;
gbc.gridx++ ;
gbc.gridy = gbc.gridy ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(txtBeginTime, gbc) ;
panUp.add(txtBeginTime) ;
//
final JLabel lblPreTime = new JLabel("预计提取日期") ;
gbc.gridx++ ;
gbc.gridy = gbc.gridy ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(lblPreTime, gbc) ;
panUp.add(lblPreTime) ;
//
final JTextField txtPreTime = new JTextField(10) ;
txtPreTime.addFocusListener(new FocusListener()
{
public void focusGained(FocusEvent e)
{
txtPreTime.setText("年-月-日") ;
}
public void focusLost(FocusEvent ee)
{
}
}) ;
gbc.gridx++ ;
gbc.gridy = gbc.gridy ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1 ;
gbl.setConstraints(txtPreTime, gbc) ;
panUp.add(txtPreTime) ;
/*
*GridBagLayout说明:
*只要规定了一个组件的gridwidth = 1;grideight =1 ;就说明站一个格子,不管这个组件有多大,
*都会放在里面的!那么这个布局的一个格子的表转就是这父
*/
//
final JTextArea txeaDetails = new JTextArea(5, 38) ;//如果内部类用到的时候,那么外部变量
txeaDetails.setText("请在这里输入简要说明") ; //一定要是常量!
//为txeaDetails添加FocusListener,这样当得到焦点的时候,那么就会selectAll(),
//如果不这样做,直接写上te.selectAll()这样是不可以的,必须让它得到焦点!
txeaDetails.addFocusListener(new FocusListener()
{
public void focusGained(FocusEvent e)
{
txeaDetails.selectAll() ;
}
public void focusLost(FocusEvent ee)
{
}
}) ;
gbc.gridx = 0 ;
gbc.gridy++ ;
gbc.gridwidth = 4 ;
gbc.gridheight = 3 ;
gbl.setConstraints(txeaDetails, gbc) ;
panUp.add(txeaDetails) ;
gbc.gridwidth = 1 ;
gbc.gridheight = 1;
//
JButton btnCancel = new JButton("取消") ;
btnCancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
frame.setVisible(false) ;
frame.dispose() ;
}
}) ;
gbc.fill = GridBagConstraints.BOTH ;
gbc.ipadx = 0 ;
gbc.ipady = -5 ;
gbc.gridx = 4 ;
gbc.gridy = 2 ;
gbc.gridwidth = 2 ;
gbc.gridheight = 2 ;
gbl.setConstraints(btnCancel, gbc) ;
panUp.add(btnCancel) ;
gbc.fill = GridBagConstraints.NONE ;
gbc.ipadx = 0 ;
gbc.ipady = 0 ;
//
final JButton btnConfirm = new JButton("确定") ;
btnConfirm.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String driver = "sun.jdbc.odbc.JdbcOdbcDriver" ;
String urlConsign = "jdbc:odbc:Hotel" ;
//注册数据库驱动程序!~
String strState = "未提取" ;
String consignNO = String.valueOf(consignNumber++) ;
String strTxtName = txtName.getText().trim() ;
String strSexSelected = (String)comboxSex.getSelectedItem() ;
String strPassword = txtPassword.getText().trim() ;
String strConName = txtConName.getText().trim() ;
int strConCount = Integer.parseInt((txtConCount.getText()).trim()) ;
int strPrice = Integer.parseInt(txtPrice.getText().trim()) ;
String strBeginTime = txtBeginTime.getText().trim() ;
String strEndTime = "未知" ;
String strPreTime = txtPreTime.getText().trim() ;
String strDetails = txeaDetails.getText().trim() ;
//下面将对一些信息做验证!
if(strTxtName.length() == 0 ||strPassword.length() == 0||
strConName.length() == 0 ||txtConCount.getText().trim().length() == 0 ||
txtPrice.getText().trim().length() == 0 ||strEndTime.length() == 0 )
{
JOptionPane.showMessageDialog(null, "请完整输入信息!") ;
return ;
}
if(strDetails.length() > 50)
{
JOptionPane.showMessageDialog(null,"简要说明过长!") ;
}
/*
*注意:在Java中中文字符和英文字符都是按照一个字符看待,所有
* System.out.println("1234567".length()) ;
* System.out.println("中华人民共和国".length()) ;
* 运行结果:7
* 7
*/
int result = JOptionPane.showConfirmDialog(null, "确认要寄存此物品吗?", "信息", JOptionPane.YES_NO_OPTION) ;
if(result == JOptionPane.YES_OPTION)
{
try
{
Class.forName(driver) ;
}
catch(Exception eee)
{
JOptionPane.showMessageDialog(null, eee.toString()) ;
}
//连接数据库并进行相关的操作!
try
{
Connection con = DriverManager.getConnection(urlConsign) ;
Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
smt.executeUpdate("INSERT "+
"INTO table_Consign(寄存号码,寄存人姓名,性别,密码,寄存品名称,寄存件数,物品估价,寄存时间,提取时间,预计提取时间,简要说明,状态)"+
"VALUES("+"'"+consignNO+"',"+"'"+strTxtName+"',"+"'"+strSexSelected+"',"+"'"+strPassword+"',"+
"'"+strConName+"',"+strConCount+","+
+strPrice+","+"'"+strBeginTime+"',"+
"'"+strEndTime+"',"+"'"+strPreTime+"',"+
"'"+strDetails+"',"+"'"+strState+"')") ;
frame.setVisible(false) ;
frame.dispose() ;
JOptionPane.showMessageDialog(null, "物品寄存成功!n\n尊敬的客户:\n 为便于您查询,请您记住您的寄存号码:"+(consignNumber-1)) ;
}
catch(SQLException eeeee)
{
System.out.println(eeeee.toString()) ;
}
//System.out.println("Now ConsignNumber:"+consignNumber) ;
//System.out.println("Now Update The table_Consign_Nuber") ;
///////////////////////////////////////////////////////////
//更新寄存号码到寄存号码数据库!
try
{
Connection con = DriverManager.getConnection("jdbc:odbc:Hotel") ;
Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
try
{
ResultSet rst = smt.executeQuery("select * from table_Consign_Number") ;
rst.absolute(1) ;
rst.updateInt(1, consignNumber) ;
rst.updateRow() ;
System.out.println(consignNumber) ;
}
catch(SQLException hh)
{
JOptionPane.showMessageDialog(null, "获取寄存号码时发生异常!") ;
}
}
catch(SQLException jj)
{
JOptionPane.showMessageDialog(null, "连接寄存号码数据库失败!") ;
}
///更新寄存号码完毕!
//System.out.println("更新寄存号码成功!") ;
}//if( result = Confirm )结束!
else
return ;
//JOptionPane.showMessageDialog(null, ") ;
}//处理函数结束!
}) ;//内部类结束!
gbc.fill = GridBagConstraints.BOTH ;
gbc.gridx = gbc.gridx ;
gbc.gridy = gbc.gridy + 2 ;
gbc.gridwidth = 2 ;
gbc.gridheight = 2 ;
gbc.ipady = -5 ;
gbc.ipadx = 0 ;
gbl.setConstraints(btnConfirm, gbc) ;
panUp.add(btnConfirm) ;
gbc.fill = GridBagConstraints.NONE ;
gbc.ipadx = 0 ;
gbc.ipady = 0 ;
//
content.add(panUp, "Center") ;
frame.pack() ;
frame.setVisible(true) ;
frame.setResizable(false) ;
//界面已经设计完毕!下面进行一些数据库操作
//载入寄存号码信息
//注册数据库驱动程序
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
}
catch(Exception h)
{
JOptionPane.showMessageDialog(null, "数据库驱动程序注册失败!") ;
}
//连接寄存号码数据库
try
{
Connection con = DriverManager.getConnection("jdbc:odbc:Hotel") ;
Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
try
{
ResultSet rst = smt.executeQuery("select * from table_Consign_Number") ;
rst.absolute(1) ;
consignNumber = rst.getInt(1) ;//获取最大的寄存序号!
//System.out.println(consignNumber) ;
}
catch(SQLException hh)
{
JOptionPane.showMessageDialog(null, "获取寄存号码时发生异常!") ;
}
}
catch(SQLException jj)
{
JOptionPane.showMessageDialog(null, "连接寄存号码数据库失败!") ;
}
//JOptionPane.showMessageDialog(null, "获取寄存号码成功!") ;
}
public static void main(String args[])
{
new Consign() ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -