一.功能需求
需求分析是发现需求,分析求精,逻辑建模,需求规约的过程,其的目的是为了全面获取软件需求,准确理解业务逻辑。车辆租赁系统具有以下基本功能。
- 用户管理:
包括用户的注册,登陆等,没有账户的用户可以注册会员,登录,通过分类查询车辆,以及查看其详细信息。
- 车源管理:
包括车辆信息的删除,添加,修改等,管理员能够向数据库中发布车辆信息,包括车辆的车型,价格,车主等信息。
- 车源信息查找
用户可以在窗口上直接浏览车辆基本信息,也可以按照不同的要求方式对车辆信息进行查询,这样用户可以方便的找到自己想要的车源,人性化的查找方式为用户带来了极大的便利。
二.系统解决的问题
本系统主要完成前台浏览(用户注册,信息修改,车辆浏览),后台管理(车辆信息的录入,管理员登录)等功能。通过以上功能实现简单,便捷的租车系统。
车辆浏览:所有人都可以操作,顾客可以随意浏览车辆信息,按照车辆的序号排序,在点击按钮后,可以在表格中显示出可以租用车辆的信息,可以让用户选择。
车辆租用:顾客在浏览车辆信息后,可以根据自身需求选择所需租用的车辆,输入车辆的序号后,点击确定按钮,可以成功租用车辆,并且该车辆是否被租用的信息会自动更改为已被租用,如果用户租用已被租用的车辆则租用失败,无法租用成功。
车辆管理:该功能只能由管理员完成,由管理员完成对车辆信息的录入包括录入车辆的车主,价格,是否被租用等信息,并可以删除车辆信息。
会员管理:该功能由管理员完成,管理员可以注册其他的用户帐号,并将帐号密码录入数据库中。
各个模块的实现方法描述
运行结果截图
package Guanliyuan;
import java.awt.BorderLayout;
import Util.DbUtil;
import Yonghu.*;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.FieldPosition;
import javax.naming.InitialContext;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.TableColumn;
import Index.*;
public class Guanliyuan extends JFrame implements ActionListener{
/*
*
* 管理员端的界面
*/
JTable table;
JLabel label1,label2,label3,label4;
Object a[][];
Object name[] = {"编号","车型","车主","价格(元/天)","颜色","是否被租用","租用的用户"};
JButton buttonOfXinxiluru,buttonOfXinxiliulan,buttonOfDelete,buttonOfLogout,buttonOfXiangXi,buttonOfXiugai;
Box box1,box2;
JTextField field,field2,field3;
JPanel jPanel4,jPanel5;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
public Guanliyuan(Boolean success)
{
init();
setVisible(true);
// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(500, 200, 625, 490);
setTitle("管理员界面");
if(success)//successs是一个boolean类型,如果为true,打开此窗口直接信息浏览,false表里面没有信息,需要点击信息浏览!
{
xinXiLiuLan();
}
}
void init()
{
label1 = new JLabel("汽车租赁信息管理系统");
buttonOfXinxiluru = new JButton(" 汽车信息录入 ");
buttonOfXinxiluru.addActionListener(this);
buttonOfXinxiliulan = new JButton(" 汽车信息浏览 ");
buttonOfXinxiliulan.addActionListener(this);
buttonOfDelete = new JButton(" 删 除 ");
buttonOfDelete.addActionListener(this);
buttonOfLogout = new JButton(" 退 出 登 录 ");
buttonOfLogout.addActionListener(this);
buttonOfXiugai = new JButton(" 修 改 ");
buttonOfXiugai.addActionListener(this);
buttonOfXiangXi = new JButton(" 详 细 信 息 ");
buttonOfXiangXi.addActionListener(this);
label2 = new JLabel("待删除信息编号:");
label3 = new JLabel("待修改信息的编号:");
label4 = new JLabel("待查询详情的编号:");
field = new JTextField();
field2 = new JTextField();
field3 = new JTextField();
a = new Object[50][7];
table = new JTable(a, name);//组件的创建
table.setEnabled(false);
JScrollPane scrollPane = new JScrollPane(table);
box1 = Box.createVerticalBox();
box1.add(Box.createVerticalStrut(20));
box1.add(buttonOfXinxiluru);
box1.add(Box.createVerticalStrut(10));
box1.add(buttonOfXinxiliulan);
box1.add(Box.createVerticalStrut(15));
box1.add(label2);
box1.add(Box.createVerticalStrut(5));
box1.add(field);
box1.add(Box.createVerticalStrut(5));
box1.add(buttonOfDelete);
box1.add(Box.createVerticalStrut(25));
box1.add(label3);
box1.add(Box.createVerticalStrut(5));
box1.add(field2);
box1.add(Box.createVerticalStrut(5));
box1.add(buttonOfXiugai);
box1.add(Box.createVerticalStrut(25));
box1.add(label4);
box1.add(Box.createVerticalStrut(5));
box1.add(field3);
box1.add(Box.createVerticalStrut(5));
box1.add(buttonOfXiangXi);
box1.add(Box.createVerticalStrut(40));
box1.add(buttonOfLogout);
box2 = Box.createHorizontalBox();
box2.add(Box.createHorizontalStrut(10));
box2.add(box1); //左边的按钮部分用 box布局
jPanel4 = new JPanel();
jPanel5 = new JPanel();
jPanel4.setLayout(new BorderLayout());
jPanel4.add(box2,BorderLayout.NORTH);//把左边的按钮部分放到jpanel4中。
// jPanel1 = new JPanel();
// jPanel2 = new JPanel();
// jPanel3 = new JPanel();
// jPanel4 = new JPanel();
// jPanel5 = new JPanel();
//
// jPanel1.setLayout(new BorderLayout());
// jPanel1.add(label2,BorderLayout.NORTH);
// jPanel1.add(field,BorderLayout.CENTER);
// jPanel1.add(buttonOfDelete,BorderLayout.SOUTH);//把删除的模块放一个jpanel1里
//
// jPanel2.setLayout(new BorderLayout());
// jPanel2.add(jPanel1,BorderLayout.NORTH);
// jPanel2.add(buttonOfLogout,BorderLayout.CENTER);//把删除模块和 退出登录模块放一个jpanel2里
//
// jPanel3.setLayout(new BorderLayout());
// jPanel3.add(buttonOfXinxiluru,BorderLayout.NORTH);
// jPanel3.add(buttonOfXinxiliulan,BorderLayout.CENTER);//信息录入浏览按钮放到jpanel3里
//
// jPanel4.setLayout(new BorderLayout());
// jPanel4.add(jPanel3,BorderLayout.NORTH);
// jPanel4.add(jPanel2,BorderLayout.CENTER);//把jpanel 2 3 放到 jpanel4里
//
jPanel5.setLayout(new BorderLayout());
jPanel5.add(label1,BorderLayout.NORTH);
jPanel5.add(scrollPane,BorderLayout.CENTER);//把表格 放jpanel5里
this.setLayout(new BorderLayout());
add(jPanel5,BorderLayout.EAST);
add(jPanel4,BorderLayout.WEST);//把两个大的panel放到窗口里面
}
public void connDB() { // 连接数据库
try {
Class.forName("com.mysql.jdbc.Driver");//注册驱动
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {//创建连接
con = DriverManager.getConnection(DbUtil.dbUrlString, DbUtil.dbUser, DbUtil.dbpassword);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeDB() // 关闭连接
{
try {
stmt.close();
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
public void xinXiLiuLan()//信息浏览的方法,因为删除数据后会刷新一下,自动调用此函数。
{
int i=0;
while(i<50)
{
a[i][0]=" ";
a[i][1]=" ";
a[i][2]=" ";
a[i][3]=" ";
a[i][4]=" ";
a[i][5]=" ";
a[i][6]=" ";
i++;
}
i=0;
this.connDB();
try {
stmt = con.createStatement();
String sql= "select * from car_information";
rs = stmt.executeQuery(sql);
while(rs.next())
{
String number = rs.getString("number");
String cartype = rs.getString("cartype");
String carower = rs.getString("carower");
String price = rs.getString("price");
String color = rs.getString("color");
String hire= rs.getString("hire");
String username= rs.getString("username");
a[i][0]=number;
a[i][1]=cartype;
a[i][2]=carower;
a[i][3]=price;
a[i][4]=color;
a[i][5]=hire;
a[i][6]=username;
i++;
}
this.closeDB();
repaint();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
this.closeDB();
}
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == buttonOfXinxiluru)//点击信息修改按钮
{
this.dispose();
new Luru();
}
else if(source == buttonOfXinxiliulan)//点击信息浏览按钮
{
xinXiLiuLan();
}
else if(source == buttonOfXiugai)//点击修改按钮
{
if(field2.getText().equals(""))
{
JOptionPane.showMessageDialog(null, "输入修改车型的编号!");
}
else
{
this.dispose();
new Xiugai(field2.getText());
}
}
else if(source == buttonOfXiangXi)//点击详细信息按钮
{
this.dispose();
new Xiangxi(field3.getText());
}
else if(source == buttonOfDelete)//点击删除按钮
{
if(field.getText().equals(""))
{
JOptionPane.showMessageDialog(null, "请输入删除车辆的编号!");
}
else
{
this.connDB();
String sql;
try {
stmt = con.createStatement();
sql = "select * from car_information where number='"+field.getText()+"'";//表里找到需要删除的车信息
rs = stmt.executeQuery(sql);
} catch (SQLException e2) {
e2.printStackTrace();
}
try {
if(rs.next())//判断是否有 输入编号的 车辆
{
int n = JOptionPane.showConfirmDialog(this, "确定删除此车辆信息?","确认对话框",JOptionPane.YES_NO_OPTION);//确认文本框
if(n == JOptionPane.YES_OPTION)
{
String hire2 = rs.getString("hire");
if(hire2.equals("是"))
{
int m = JOptionPane.showConfirmDialog(this, "此车辆正在被租用,是否删除?","确认对话框",JOptionPane.YES_NO_OPTION);//确认文本框
if(m == JOptionPane.YES_OPTION)
{
try
{
stmt = con.createStatement();
String sql2 = "delete from car_information where number='"+field.getText()+"';";
stmt.executeUpdate(sql2);
}
catch (SQLException e1)
{
e1.printStackTrace();
}
this.closeDB();
repaint();
field.setText("");
JOptionPane.showMessageDialog(null,"删除成功!");
xinXiLiuLan();
return;
}
else
{
return;
// try
// {
// stmt = con.createStatement();
// String sql2 = "delete from car_information where number='"+field.getText()+"';";
// stmt.executeUpdate(sql2);
// }
// catch (SQLException e1)
// {
// e1.printStackTrace();
// }
// this.closeDB();
// repaint();
// field.setText("");
// JOptionPane.showMessageDialog(null,"删除成功!");
// xinXiLiuLan();
}
}
try
{
stmt = con.createStatement();
String sql2 = "delete from car_information where number='"+field.getText()+"';";
stmt.executeUpdate(sql2);
}
catch (SQLException e1)
{
e1.printStackTrace();
}
this.closeDB();
repaint();
field.setText("");
JOptionPane.showMessageDialog(null,"删除成功!");
xinXiLiuLan();
}
else if(n == JOptionPane.NO_OPTION)
{
}
}
else
{
JOptionPane.showMessageDialog(null, "没有此编号的车辆信息!");
}
} catch (HeadlessException e1) {
e1.printStackTrace();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
else if(source == buttonOfLogout)//退出
{
this.dispose();
new Login();
}
}
}
package Guanliyuan;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/*
* 信息录入界面
*/
import Util.DbUtil;
public class Luru extends JFrame implements ActionListener {
JTextField field1,field2,field3,field4,field5,field6;
Box box1,box2,box3,box4,box5,box6,box7,baseBox;
JButton buttonOfQueDing,buttonOfReset,buttonOfQuXIAO;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
public Luru()
{
init();
setVisible(true);
// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(550, 200, 550, 280);
setTitle("车辆信息录入界面");
}
void init()
{
JLabel label1 = new JLabel(" 序 号 : ");
JLabel label2 = new JLabel(" 车 型 : ");
JLabel label3 = new JLabel(" 车 主 : ");
JLabel label4 = new JLabel("价格(元/天):");
JLabel label5 = new JLabel(" 颜 色 : ");
JLabel label6 = new JLabel("已租用(是/否):");
field1 = new JTextField();
field2 = new JTextField();
field3 = new JTextField();
field4 = new JTextField();
field5 = new JTextField();
field6 = new JTextField();
buttonOfQueDing = new JButton("提交");
buttonOfReset = new JButton("重置");
buttonOfQuXIAO = new JButton("取消");
buttonOfQueDing.addActionListener(this);
buttonOfQuXIAO.addActionListener(this);
buttonOfReset.addActionListener(this);
box1 = Box.createHorizontalBox();
box1.add(box1.createHorizontalStrut(8));
box1.add(label1);
box1.add(box1.createHorizontalStrut(8));
box1.add(field1);
box1.add(box1.createHorizontalStrut(8));
box2 = Box.createHorizontalBox();
box2.add(box2.createHorizontalStrut(8));
box2.add(label2);
box2.add(box2.createHorizontalStrut(8));
box2.add(field2);
box2.add(box2.createHorizontalStrut(8));
box3 = Box.createHorizontalBox();
box3.add(box3.createHorizontalStrut(8));
box3.add(label3);
box3.add(box3.createHorizontalStrut(8));
box3.add(field3);
box3.add(box3.createHorizontalStrut(8));
box4 = Box.createHorizontalBox();
box4.add(box4.createHorizontalStrut(8));
box4.add(label4);
box4.add(box4.createHorizontalStrut(8));
box4.add(field4);
box4.add(box4.createHorizontalStrut(8));
box5 = Box.createHorizontalBox();
box5.add(box5.createHorizontalStrut(8));
box5.add(label5);
box5.add(box5.createHorizontalStrut(8));
box5.add(field5);
box5.add(box5.createHorizontalStrut(8));
box6 = Box.createHorizontalBox();
box6.add(box6.createHorizontalStrut(8));
box6.add(label6);
box6.add(box6.createHorizontalStrut(8));
box6.add(field6);
box6.add(box6.createHorizontalStrut(8));
box7 = Box.createHorizontalBox();
box7.add(box7.createHorizontalStrut(8));
box7.add(buttonOfQueDing);
box7.add(box7.createHorizontalStrut(8));
box7.add(buttonOfQuXIAO);
box7.add(box7.createHorizontalStrut(8));
box7.add(buttonOfReset);
box7.add(box7.createHorizontalStrut(8));
baseBox = Box.createVerticalBox();
baseBox.add(Box.createVerticalStrut(15));
baseBox.add(box1);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box2);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box3);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box4);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box5);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box6);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box7);
baseBox.add(Box.createVerticalStrut(15));
add(baseBox);
}
public void connDB() { // 连接数据库
try {
Class.forName("com.mysql.jdbc.Driver");//注册驱动
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {//创建连接
con = DriverManager.getConnection(DbUtil.dbUrlString, DbUtil.dbUser, DbUtil.dbpassword);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeDB() // 关闭连接
{
try {
stmt.close();
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
public static boolean isNumeric(String str){
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}//判断 编号输入的是不是整数!
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
String number = field1.getText();
String cartype = field2.getText() ;
String carower = field3.getText() ;
String price = field4.getText();
String color = field5.getText();
String hire = field6.getText();
// if(field6.getText().equals("是")&&field6.getText().equals("已经")&&field6.getText().equals("已租用")&&field6.getText().equals("已"))
// {
// hire = "1";
// }
// else
// {
// hire = "0";
// }
if(source == buttonOfQueDing)
{
if(number.equals("")||cartype.equals("")||carower.equals("")||price.equals("")||color.equals("")||hire.equals(""))
{
JOptionPane.showMessageDialog(null, "请填写完整!");
}
else if(!isNumeric(number))
{
JOptionPane.showMessageDialog(null, "序号 请输入整数!");
}
else
{
this.connDB();
try {
int numberint = Integer.parseInt(field1.getText());
stmt = con.createStatement();
String str = "insert into car_information (number,cartype,carower,price,color,hire)values('"+numberint+"','"+cartype+"','"+carower+"','"+price+"','"+color+"','"+hire+"');";
stmt.executeUpdate(str);
JOptionPane.showMessageDialog(null, "录入成功!");
this.closeDB();
this.dispose();
new Guanliyuan(true);
} catch (SQLException e1) {
// e1.printStackTrace();
JOptionPane.showMessageDialog(null, "此编号已经被使用,请换一个编号!");
}
}
}
else if(source == buttonOfQuXIAO)
{
this.dispose();
new Guanliyuan(false);
}
else if(source == buttonOfReset)
{
//field1.setText("");
field2.setText("");
field3.setText("");
field4.setText("");
field5.setText("");
field6.setText("");
}
}
}
package Guanliyuan;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import Util.DbUtil;
public class Xiangxi extends JFrame implements ActionListener{
JTextArea area;
Box box1,baseBox,box2,baseBox2;
JButton buttonOfBianJi,buttonOfFanHui,buttonOfTi;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String number=null;
int setEnable =0;
String information;
/*
* 这个详细信息 管理员的界面
*/
public Xiangxi(String number)
{
init();
setVisible(true);
// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(500, 200, 620, 360);
setTitle("管理员详细信息界面");
this.number = number;
setArea();
}
public void setArea()//打开界面就把 数据库中的详细信息写入到area中
{
this.connDB();
try {
stmt = con.createStatement();
String sql = "select * from car_information where number='"+number+"'; ";
rs = stmt.executeQuery(sql);
} catch (SQLException e2) {
e2.printStackTrace();
}
try {
if(rs.next())
{
information = rs.getString("information");
area.setText(information);
area.setEnabled(false);
}
else
{
JOptionPane.showMessageDialog(null,"没有此编号的车辆的详细信息!");
new Guanliyuan(true);
}
} catch (HeadlessException e2) {
e2.printStackTrace();
} catch (SQLException e2) {
e2.printStackTrace();
}
}
void init()
{
JLabel label = new JLabel("车辆的详细信息:");
area = new JTextArea(10, 10);
buttonOfBianJi = new JButton("编辑");
buttonOfBianJi.addActionListener(this);
buttonOfFanHui = new JButton("返回");
buttonOfFanHui.addActionListener(this);
buttonOfTi = new JButton("提交");
buttonOfTi.addActionListener(this);
box1 = Box.createVerticalBox();
box1.add(box1.createVerticalStrut(8));
box1.add(label);
box1.add(area);
box2 = Box.createHorizontalBox();
box2.add(box2.createHorizontalStrut(8));
box2.add(buttonOfBianJi);
box2.add(box2.createHorizontalStrut(8));
box2.add(buttonOfTi);
box2.add(box2.createHorizontalStrut(8));
box2.add(buttonOfFanHui);
baseBox = Box.createHorizontalBox();
baseBox.add(baseBox.createHorizontalStrut(10));
baseBox.add(box1);
baseBox.add(baseBox.createHorizontalStrut(10));
baseBox2 = Box.createVerticalBox();
baseBox2.add(baseBox);
baseBox2.add(baseBox2.createVerticalStrut(10));
baseBox2.add(box2);
baseBox2.add(baseBox2.createVerticalStrut(10));
add(baseBox2);
}
public void connDB() { // 连接数据库
try {
Class.forName("com.mysql.jdbc.Driver");//注册驱动
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {//创建连接
con = DriverManager.getConnection(DbUtil.dbUrlString, DbUtil.dbUser, DbUtil.dbpassword);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeDB() // 关闭连接
{
try {
stmt.close();
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == buttonOfBianJi)
{
area.setEnabled(true);
setEnable = 1;
}
else if (source == buttonOfFanHui)
{
this.dispose();
new Guanliyuan(false);
}
else if(source == buttonOfTi)
{
if(setEnable == 1)
{
String areaString = area.getText();
this.connDB();
try
{
stmt = con.createStatement();
String sqlString ="update car_information set information='"+areaString+"'where number = '"+number+"';";
stmt.executeUpdate(sqlString);
} catch (SQLException e1)
{
e1.printStackTrace();
}
JOptionPane.showMessageDialog(null, "提交成功!");
this.closeDB();
this.dispose();
new Guanliyuan(true);
}
else
{
JOptionPane.showMessageDialog(null, "请点击编辑变换成编辑状态!");
}
}
}
}
package Guanliyuan;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
/*
* 详细详细的管理员编辑页面
*/
public class Xinxitijiao extends JFrame implements ActionListener{
JTextArea area;
Box box1,baseBox,box2,baseBox2;
JButton buttonOfTijiao,buttonOfFanHui;
public Xinxitijiao()
{
init();
setVisible(true);
// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(500, 200, 620, 360);
setTitle("详细信息编辑界面");
}
void init()
{
JLabel label = new JLabel("车辆的详细信息:");
area = new JTextArea(10, 10);
buttonOfTijiao = new JButton("提交");
buttonOfFanHui = new JButton("返回");
box1 = Box.createVerticalBox();
box1.add(box1.createVerticalStrut(8));
box1.add(label);
box1.add(area);
box2 = Box.createHorizontalBox();
box2.add(box2.createHorizontalStrut(8));
box2.add(buttonOfTijiao);
box2.add(box2.createHorizontalStrut(8));
box2.add(buttonOfFanHui);
baseBox = Box.createHorizontalBox();
baseBox.add(baseBox.createHorizontalStrut(10));
baseBox.add(box1);
baseBox.add(baseBox.createHorizontalStrut(10));
baseBox2 = Box.createVerticalBox();
baseBox2.add(baseBox);
baseBox2.add(baseBox2.createVerticalStrut(10));
baseBox2.add(box2);
baseBox2.add(baseBox2.createVerticalStrut(10));
add(baseBox2);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
package Guanliyuan;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import Util.DbUtil;
/*
* 信息录入界面
*/
public class Xiugai extends JFrame implements ActionListener {
JTextField field1,field2,field3,field4,field5,field6;
Box box1,box2,box3,box4,box5,box6,box7,baseBox;
JButton buttonOfQueDing,buttonOfReset,buttonOfQuXIAO;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String number;
public Xiugai(String number)
{
init();
setVisible(true);
// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(550, 200, 550, 280);
setTitle("车辆信息修改界面");
this.number = number;
setText();
}
void init()
{
JLabel label1 = new JLabel(" 序 号 : ");
JLabel label2 = new JLabel(" 车 型 : ");
JLabel label3 = new JLabel(" 车 主 : ");
JLabel label4 = new JLabel(" 价 格 : ");
JLabel label5 = new JLabel(" 颜 色 : ");
JLabel label6 = new JLabel("是否被租用:");
field1 = new JTextField();
field2 = new JTextField();
field3 = new JTextField();
field4 = new JTextField();
field5 = new JTextField();
field6 = new JTextField();
buttonOfQueDing = new JButton("提交");
buttonOfQueDing.addActionListener(this);
buttonOfReset = new JButton("重置");
buttonOfReset.addActionListener(this);
buttonOfQuXIAO = new JButton("取消");
buttonOfQuXIAO.addActionListener(this);
box1 = Box.createHorizontalBox();
box1.add(box1.createHorizontalStrut(8));
box1.add(label1);
box1.add(box1.createHorizontalStrut(8));
box1.add(field1);
box1.add(box1.createHorizontalStrut(8));
box2 = Box.createHorizontalBox();
box2.add(box2.createHorizontalStrut(8));
box2.add(label2);
box2.add(box2.createHorizontalStrut(8));
box2.add(field2);
box2.add(box2.createHorizontalStrut(8));
box3 = Box.createHorizontalBox();
box3.add(box3.createHorizontalStrut(8));
box3.add(label3);
box3.add(box3.createHorizontalStrut(8));
box3.add(field3);
box3.add(box3.createHorizontalStrut(8));
box4 = Box.createHorizontalBox();
box4.add(box4.createHorizontalStrut(8));
box4.add(label4);
box4.add(box4.createHorizontalStrut(8));
box4.add(field4);
box4.add(box4.createHorizontalStrut(8));
box5 = Box.createHorizontalBox();
box5.add(box5.createHorizontalStrut(8));
box5.add(label5);
box5.add(box5.createHorizontalStrut(8));
box5.add(field5);
box5.add(box5.createHorizontalStrut(8));
box6 = Box.createHorizontalBox();
box6.add(box6.createHorizontalStrut(8));
box6.add(label6);
box6.add(box6.createHorizontalStrut(8));
box6.add(field6);
box6.add(box6.createHorizontalStrut(8));
box7 = Box.createHorizontalBox();
box7.add(box7.createHorizontalStrut(8));
box7.add(buttonOfQueDing);
box7.add(box7.createHorizontalStrut(8));
box7.add(buttonOfQuXIAO);
box7.add(box7.createHorizontalStrut(8));
box7.add(buttonOfReset);
box7.add(box7.createHorizontalStrut(8));
baseBox = Box.createVerticalBox();
baseBox.add(Box.createVerticalStrut(15));
baseBox.add(box1);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box2);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box3);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box4);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box5);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box6);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(box7);
baseBox.add(Box.createVerticalStrut(15));
add(baseBox);
}
public void connDB() { // 连接数据库
try {
Class.forName("com.mysql.jdbc.Driver");//注册驱动
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {//创建连接
con = DriverManager.getConnection(DbUtil.dbUrlString, DbUtil.dbUser, DbUtil.dbpassword);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeDB() // 关闭连接
{
try {
stmt.close();
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
public void setText()//此函数功能是 把数据库 需要修改的信息 都打印到界面的文本框中
{
String cartype =null;
String carower=null;
String price=null;
String color=null;
String hire=null;
field1.setText(number);
field1.setEnabled(false);
this.connDB();
try {
stmt = con.createStatement();
//String sql = "select * from car_information (cartype,carower,price,color,hire);";
String sql = "select * from car_information where number = '"+number+"';";
rs = stmt.executeQuery(sql);
if(rs.next())
{
cartype = rs.getString("cartype");
carower = rs.getString("carower");
price = rs.getString("price");
color = rs.getString("color");
hire = rs.getString("hire");
}else{
JOptionPane.showMessageDialog(null, "不存在该编号!");
this.dispose();
new Guanliyuan(true);//为ture
}
this.closeDB();
} catch (SQLException e2) {
e2.printStackTrace();
}
field2.setText(cartype);
field3.setText(carower);
field4.setText(price);
field5.setText(color);
field6.setText(hire);
}
public void actionPerformed(ActionEvent e) {
String cartype =null;
String carower=null;
String price=null;
String color=null;
String hire=null;
Object source = e.getSource();
this.connDB();
cartype = field2.getText() ;
carower = field3.getText() ;
price = field4.getText();
color = field5.getText();
hire = field6.getText();
if(source == buttonOfQueDing)//点击确定按钮
{
if(cartype.equals("")||carower.equals("")||price.equals("")||color.equals("")||hire.equals(""))
{
JOptionPane.showMessageDialog(null, "请填写完整!");
}
else
{
int n = JOptionPane.showConfirmDialog(this, "确定修改此车辆信息?","确认对话框",JOptionPane.YES_NO_OPTION);//确认文本框
if(n == JOptionPane.YES_OPTION)
{
this.connDB();
try {
stmt = con.createStatement();
String str = "update car_information set cartype='"+cartype+"',carower='"+carower+"',price='"+price+"',color='"+color+"',hire='"+hire+"' where number = '"+number+"';";
stmt.executeUpdate(str);
JOptionPane.showMessageDialog(null, "修改成功!");
this.closeDB();
this.dispose();
new Guanliyuan(true);//为ture
} catch (SQLException e1) {
e1.printStackTrace();
}
}
else
{
}
}
}
else if(source == buttonOfQuXIAO)
{
this.dispose();
new Guanliyuan(false);
}
else if(source == buttonOfReset)
{
field2.setText("");
field3.setText("");
field4.setText("");
field5.setText("");
field6.setText("");
}
}
}