基于java+mysql的swing+mysql火车票售票管理系统(java+swing+mysql+gui)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
管理员管理车票和用户、用户购买车票等
技术框架
Java Swing MySQL
基于java+mysql的Swing+MySQL火车票售票管理系统(java+swing+mysql+gui)
stmt.setString(2, ticket.getStation_depart());
stmt.setString(3, ticket.getDepart_date());
stmt.setString(4, ticket.getDepart_time());
stmt.setInt(5, ticket.getTicket_number());
stmt.setString(6, ticket.getSeattypeid());
stmt.setString(7, ticket.getTickettypeid());
stmt.setInt(8, ticket.getTickets_left());
stmt.setString(9, ticket.getFares());
stmt.setString(10, ticket.getTicket_office());
stmt.setInt(11, ticket.getTicketid());
ResultSet rs = null;
stmt.executeUpdate();
Util.closeAll(con, stmt, rs);
return true;
}
@Override
public void delete(int ticketid) throws SQLException {
Connection con = Util.getConnection();
String sqladd = "delete from ticket where ticketid=?";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setInt(1, ticketid);
ResultSet rs = null;
stmt.executeUpdate();
Util.closeAll(con, stmt, rs);
}
@Override
public List<Ticket> QueryById(int ticketid) throws SQLException {
Connection con = Util.getConnection();
String sqladd = "select * from ticket where ticketid=?";
PreparedStatement stmt = con.prepareStatement(sqladd);
ResultSet rs = stmt.executeQuery();
List<Ticket> ticket = new ArrayList<>();
while (rs.next()) {
int ticketid0 = rs.getInt(1);
String station_arrival = rs.getString(2);
String station_depart = rs.getString(3);
String depart_date = rs.getString(4);
String depart_time = rs.getString(5);
int ticket_number = (rs.getInt(6));
String seattypeid = rs.getString(7);
String tickettypeid = rs.getString(8);
int tickets_left = rs.getInt(9);
String fares = rs.getString(10);
String ticket_office = rs.getString(11);
Ticket ticket2 = new Ticket(ticketid0, station_arrival,
}
public String getUserticketdepart_time() {
return userticketdepart_time;
}
public void setUserticketdepart_time(String userticketdepart_time) {
this.userticketdepart_time = userticketdepart_time;
}
public int getUserticketticket_number() {
return userticketticket_number;
}
public void setUserticketticket_number(int userticketticket_number) {
this.userticketticket_number = userticketticket_number;
}
public String getUserticketseattype() {
return userticketseattype;
}
public void setUserticketseattype(String userticketseattype) {
this.userticketseattype = userticketseattype;
}
public String getUsertickettickettype() {
return usertickettickettype;
}
public void setUsertickettickettype(String usertickettickettype) {
this.usertickettickettype = usertickettickettype;
}
public String getUserticketfares() {
return userticketfares;
}
public void setUserticketfares(String userticketfares) {
this.userticketfares = userticketfares;
}
public String getUserticketticket_office() {
JOptionPane.showMessageDialog(null, "请输入发车时间", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
} else if (txtticket_number.getText().equals("")) {
JOptionPane.showMessageDialog(null, "请输入车次", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
} else if (txttickets_left.getText().equals("")) {
JOptionPane.showMessageDialog(null, "请输入余票", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
} else if (txtfares.getText().equals("")) {
JOptionPane.showMessageDialog(null, "请输入票价", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
} else if (txtticket_office.getText().equals("")) {
JOptionPane.showMessageDialog(null, "请输入发售站", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}
String station_arrival = txtstation_arrival.getText();
String station_depart = txtstation_depart.getText();
String depart_date = txtdepart_date.getText();
String depart_time = txtdepart_time.getText();
String ticket_number0 = txtticket_number.getText();
int ticket_number = Integer.parseInt(ticket_number0);
Seattype seattype = (Seattype) cmbseattype.getSelectedItem();
String seattypeid = String.valueOf(seattype.getSeattypename()).toString();
Tickettype tickettype = (Tickettype) cmbtickettype.getSelectedItem();
String tickettypeid = String.valueOf(tickettype);
String tickets_left0 = txttickets_left.getText();
int tickets_left = Integer.parseInt(tickets_left0);
String fares = txtfares.getText();
String ticket_office = txtticket_office.getText();
boolean flag;
try {
flag = ticketDao.add(station_arrival, station_depart, depart_date, depart_time,
ticket_number, seattypeid, tickettypeid, tickets_left, fares, ticket_office);
if (flag) {
JOptionPane.showMessageDialog(null, "添加成功");
txtstation_arrival.setText("");
txtstation_depart.setText("");
txtdepart_date.setText("");
txtdepart_time.setText("");
txtticket_number.setText("");
txttickets_left.setText("");
txtfares.setText("");
txtticket_office.setText("");
} else {
JOptionPane.showMessageDialog(null, "添加失败");
}
public class UserTicketImpl implements UserTicketDao {
@Override
public boolean add(int userticketuserid, int userticketticketid, String userticketname,
String userticketidentity_number, String userticketstation_arrival, String userticketstation_depart,
String userticketdepart_date, String userticketdepart_time, int userticketticket_number,
String userticketseattype, String usertickettickettype, String userticketfares,
String userticketticket_office) throws Exception {
Connection con = Util.getConnection();
String sqladd = "insert into userticket(userticketuserid,userticketticketid,userticketname,userticketidentity_number,userticketstation_arrival,"
+ "userticketstation_depart,userticketdepart_date,"
+ "userticketdepart_time,userticketticket_number,userticketseattype,"
+ "usertickettickettype,userticketfares,userticketticket_office) values"
+ "(?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setInt(1, userticketuserid);
stmt.setInt(2, userticketticketid);
stmt.setString(3, userticketname);
stmt.setString(4, userticketidentity_number);
stmt.setString(5, userticketstation_arrival);
stmt.setString(6, userticketstation_depart);
stmt.setString(7, userticketdepart_date);
stmt.setString(8, userticketdepart_time);
stmt.setInt(9, userticketticket_number);
stmt.setString(10, userticketseattype);
stmt.setString(11, usertickettickettype);
stmt.setString(12, userticketfares);
stmt.setString(13, userticketticket_office);
stmt.executeUpdate();
return true;
}
@Override
public boolean update(UserTicket UserTicket) throws SQLException {
// TODO Auto-generated method stub
return false;
}
@Override
public void delete(int userticketid) throws SQLException {
Connection con = Util.getConnection();
String sqladd = "delete from userticket where userticketid=?";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setInt(1, userticketid);
ResultSet rs = null;
stmt.executeUpdate();
Util.closeAll(con, stmt, rs);
public void setTicket_number(int ticket_number) {
this.ticket_number = ticket_number;
}
public String getSeattypeid() {
return seattypeid;
}
public void setSeattypeid(String seattypeid) {
this.seattypeid = seattypeid;
}
public String getTickettypeid() {
return tickettypeid;
}
public void setTickettypeid(String tickettypeid) {
this.tickettypeid = tickettypeid;
}
public int getTickets_left() {
return tickets_left;
}
public void setTickets_left(int tickets_left) {
this.tickets_left = tickets_left;
}
public String getFares() {
return fares;
}
public void setFares(String fares) {
this.fares = fares;
}
public String getTicket_office() {
return ticket_office;
}
JOptionPane.showMessageDialog(null, "购买失败!");
}
} else {
JOptionPane.showMessageDialog(null, "余额不足!");
}
try {
loadData();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public class TicketImpl implements TickeDao {
@Override
public boolean add(String station_arrival, String station_depart, String depart_date, String depart_time,
int ticket_number, String seattypeid, String tickettypeid, int tickets_left, String fares,
String ticket_office) throws Exception {
Connection con = Util.getConnection();
String sqladd = "insert into ticket(station_arrival,station_depart,depart_date,depart_time,ticket_number,seattypeid,"
+ "tickettypeid,tickets_left,fares,ticket_office) values(?,?,?,?,?,?,?,?,?,?)";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setString(1, station_arrival);
stmt.setString(2, station_depart);
stmt.setString(3, depart_date);
stmt.setString(4, depart_time);
stmt.setInt(5, ticket_number);
stmt.setString(6, seattypeid);
stmt.setString(7, tickettypeid);
stmt.setInt(8, tickets_left);
txtPassword.setText("");
return;
}
if (password.length() < 1) {
JOptionPane.showMessageDialog(null, "添密码必须大于0位!");
txtname.setText("");
txtidentity_number.setText("");
txtaccout.setText("");
txtPassword.setText("");
return;
}
boolean flag;
try {
flag = userDao.add(name, identity_number, account, password);
try {
if (flag) {
JOptionPane.showMessageDialog(null, "添加成功");
txtname.setText("");
txtidentity_number.setText("");
txtaccout.setText("");
txtPassword.setText("");
} else {
JOptionPane.showMessageDialog(null, "添加失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btnNewButton.setBounds(320, 400, 116, 23);
add(btnNewButton);
}
Util.closeAll(conn, stmt, rt);
return true;
}
@Override
public boolean fundTicket(int userticketid, int userticketticketid) throws SQLException, Exception {
Connection con = Util.getConnection();
String sqlll = "update ticket set tickets_left=tickets_left+1 where ticketid = ?";
PreparedStatement stmttt = con.prepareStatement(sqlll);
stmttt.setInt(1, userticketticketid);
stmttt.executeUpdate();
String sql = "delete from userticket where userticketid=?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setInt(1, userticketid);
stmt.executeUpdate();
return true;
}
@Override
public boolean SelectUidTid(int ticketid, int userid) throws SQLException {
boolean flag = true;
String sql = "select userticketuserid,userticketticketid from userticket";
Connection con = Util.getConnection();
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rr = stmt.executeQuery();
while (rr.next()) {
int useridd = rr.getInt(1);
int ticketidd = rr.getInt(2);
if (useridd == userid && ticketidd == ticketid) {
flag = false;
break;
}
}
Util.closeAll(con, stmt, rr);
return flag;
/*String sql = "select userticketuserid,userticketticketid";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setInt(1, ticketid);
stmt.executeUpdate();
ResultSet rs = null;
DBcon.closeAll(stmt, rs);
return true;*/
}
@Override
}
@Override
public List<Ticket> queryAll() throws SQLException {
Connection con = Util.getConnection();
String sqladd = "select * from ticket ";
PreparedStatement stmt = con.prepareStatement(sqladd);
ResultSet rs = stmt.executeQuery();
List<Ticket> ticket = new ArrayList<>();
while (rs.next()) {
int ticketid0 = rs.getInt(1);
String station_arrival = rs.getString(2);
String station_depart = rs.getString(3);
String depart_date = rs.getString(4);
String depart_time = rs.getString(5);
int ticket_number = (rs.getInt(6));
String seattypeid = rs.getString(7);
String tickettypeid = rs.getString(8);
int tickets_left = rs.getInt(9);
String fares = rs.getString(10);
String ticket_office = rs.getString(11);
Ticket ticket2 = new Ticket(ticketid0, station_arrival,
station_depart, depart_date, depart_time, ticket_number,
seattypeid, tickettypeid, tickets_left, fares, ticket_office);
ticket.add(ticket2);
}
Util.closeAll(con, stmt, rs);
return ticket;
}
@Override
public List<Ticket> quetida(String station_arrival, String station_depart, String depart_date) throws SQLException {
Connection con = Util.getConnection();
String sqladd = "select * from ticket where station_arrival=? and station_depart=? and depart_date=? ";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setString(1, station_arrival);
stmt.setString(2, station_depart);
stmt.setString(3, depart_date);
ResultSet rs = stmt.executeQuery();
List<Ticket> ticket = new ArrayList<>();
while (rs.next()) {
int userticketid = rs.getInt(1);
int userticketuserid0 = rs.getInt(2);
int userticketticketid = rs.getInt(3);
String userticketname = rs.getString(4);
String userticketidentity_number = rs.getString(5);
String userticketstation_arrival = rs.getString(6);
String userticketstation_depart = rs.getString(7);
String userticketdepart_date = rs.getString(8);
String userticketdepart_time = rs.getString(9);
int userticketticket_number = rs.getInt(10);
String userticketseattype = rs.getString(11);
String usertickettickettype = rs.getString(12);
String userticketfares = rs.getString(13);
String userticketticket_office = rs.getString(14);
System.out.println(userticketticket_office);
UserTicket userticket1 = new UserTicket(userticketid, userticketuserid0,
userticketticketid, userticketname, userticketidentity_number,
userticketstation_arrival, userticketstation_depart, userticketdepart_date,
userticketdepart_time, userticketticket_number, userticketseattype,
usertickettickettype, userticketfares, userticketticket_office);
userticket.add(userticket1);
}
Util.closeAll(con, stmt, rs);
return userticket;
}
@Override
public List<UserTicket> QueryByuserticketticketid(int userticketticketid) throws SQLException {
Connection con = Util.getConnection();
String sqladd = "select * from userticket where userticketticketid=?";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setInt(1, userticketticketid);
ResultSet rs = stmt.executeQuery();
List<UserTicket> userticket = new ArrayList<>();
while (rs.next()) {
int userticketid = rs.getInt(1);
int userticketuserid = rs.getInt(2);
int userticketticketid0 = rs.getInt(3);
String userticketname = rs.getString(4);
String userticketidentity_number = rs.getString(5);
String userticketstation_arrival = rs.getString(6);
String userticketstation_depart = rs.getString(7);
String userticketdepart_date = rs.getString(8);
String userticketdepart_time = rs.getString(9);
int userticketticket_number = rs.getInt(10);
String userticketseattype = rs.getString(11);
String usertickettickettype = rs.getString(12);
String userticketfares = rs.getString(13);
String userticketticket_office = rs.getString(14);
+ userticketdepart_time + ", userticketticket_number=" + userticketticket_number
+ ", userticketseattype=" + userticketseattype + ", usertickettickettype=" + usertickettickettype
+ ", userticketfares=" + userticketfares + ", userticketticket_office=" + userticketticket_office + "]";
}
public UserTicket(int userticketid, int userticketuserid, int userticketticketid, String userticketname,
String userticketidentity_number, String userticketstation_arrival, String userticketstation_depart,
String userticketdepart_date, String userticketdepart_time, int userticketticket_number,
String userticketseattype, String usertickettickettype, String userticketfares,
String userticketticket_office) {
super();
this.userticketid = userticketid;
this.userticketuserid = userticketuserid;
this.userticketticketid = userticketticketid;
this.userticketname = userticketname;
this.userticketidentity_number = userticketidentity_number;
this.userticketstation_arrival = userticketstation_arrival;
this.userticketstation_depart = userticketstation_depart;
this.userticketdepart_date = userticketdepart_date;
this.userticketdepart_time = userticketdepart_time;
this.userticketticket_number = userticketticket_number;
this.userticketseattype = userticketseattype;
this.usertickettickettype = usertickettickettype;
this.userticketfares = userticketfares;
this.userticketticket_office = userticketticket_office;
}
}
/**
* 个人信息修改
*/
int tickets_left = rs.getInt(9);
String fares = rs.getString(10);
String ticket_office = rs.getString(11);
Ticket ticket2 = new Ticket(ticketid0, station_arrival,
station_depart, depart_date, depart_time, ticket_number,
seattypeid, tickettypeid, tickets_left, fares, ticket_office);
ticket.add(ticket2);
}
Util.closeAll(con, stmt, rs);
return ticket;
}
@Override
public List<Ticket> quetida(String station_arrival, String station_depart, String depart_date) throws SQLException {
Connection con = Util.getConnection();
String sqladd = "select * from ticket where station_arrival=? and station_depart=? and depart_date=? ";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setString(1, station_arrival);
stmt.setString(2, station_depart);
stmt.setString(3, depart_date);
ResultSet rs = stmt.executeQuery();
List<Ticket> ticket = new ArrayList<>();
while (rs.next()) {
int ticketid0 = rs.getInt(1);
String station_arrival0 = rs.getString(2);
String station_depart0 = rs.getString(3);
String depart_date0 = rs.getString(4);
String depart_time = rs.getString(5);
int ticket_number = (rs.getInt(6));
String seattypeid = rs.getString(7);
String tickettypeid = rs.getString(8);
int tickets_left = rs.getInt(9);
String fares = rs.getString(10);
String ticket_office = rs.getString(11);
Ticket ticket2 = new Ticket(ticketid0, station_arrival0,
station_depart0, depart_date0, depart_time, ticket_number,
seattypeid, tickettypeid, tickets_left, fares, ticket_office);
ticket.add(ticket2);
}
System.out.println(rs.next());
Util.closeAll(con, stmt, rs);
return ticket;
}
@Override
}
});
}
public void loadData() throws SQLException {
// 清除旧的数据
model.getDataVector().clear();
List<Ticket> list = ticketDao.queryAll();
// 遍历每一条数据,添加到model中
for (Ticket ticket : list) {
// 添加 行数据
// cob.setSelectedItem(new Tickettype(ticket.getTicketid()));
model.addRow(new Object[]{ticket.getTicketid(), ticket.getStation_arrival(), ticket.getStation_depart(),
ticket.getDepart_date(), ticket.getDepart_time(), ticket.getTicket_number(), ticket.getSeattypeid(),
ticket.getTickettypeid(), ticket.getTickets_left(), ticket.getFares(),
ticket.getTicket_office()
});
}
}
public void del() throws SQLException {
if (table.getSelectedRowCount() <= 0) {
JOptionPane.showMessageDialog(null, "请选择要删除的数据行");
return;
}
int result = JOptionPane.showConfirmDialog(null, "是否确定要删除");
// 判断用户是否点击
if (result == JOptionPane.OK_OPTION) {
int ticketid = Integer.valueOf(table.getValueAt(
table.getSelectedRow(), 0).toString());
ticketDao.delete(ticketid);
loadData();
}
}
public void updata() throws SQLException {
if (table.getSelectedRowCount() <= 0) {
JOptionPane.showMessageDialog(null, "请选择要修改的数据行");
return;
}
int result = JOptionPane.showConfirmDialog(null, "是否确定要修改");
// 判断用户是否点击
if (result == JOptionPane.OK_OPTION) {
String ticket_office = txtticket_office.getText();
Ticket ticket = new Ticket(ticketid, station_arrival, station_depart,
depart_date, depart_time, ticket_number, seattypeid,
tickettypeid, tickets_left, fares, ticket_office);
boolean flag;
try {
flag = ticketDao.update(ticket);
if (flag) {
JOptionPane.showMessageDialog(null, "修改成功");
dispose();
} else {
JOptionPane.showMessageDialog(null, "修改失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
btnNewButton.setBounds(320, 480, 146, 23);
add(btnNewButton);
}
}
/**
* 添加车票
*/
public boolean add(int userticketuserid, int userticketticketid, String userticketname,
String userticketidentity_number, String userticketstation_arrival, String userticketstation_depart,
String userticketdepart_date, String userticketdepart_time, int userticketticket_number,
String userticketseattype, String usertickettickettype, String userticketfares,
String userticketticket_office) throws Exception {
Connection con = Util.getConnection();
String sqladd = "insert into userticket(userticketuserid,userticketticketid,userticketname,userticketidentity_number,userticketstation_arrival,"
+ "userticketstation_depart,userticketdepart_date,"
+ "userticketdepart_time,userticketticket_number,userticketseattype,"
+ "usertickettickettype,userticketfares,userticketticket_office) values"
+ "(?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setInt(1, userticketuserid);
stmt.setInt(2, userticketticketid);
stmt.setString(3, userticketname);
stmt.setString(4, userticketidentity_number);
stmt.setString(5, userticketstation_arrival);
stmt.setString(6, userticketstation_depart);
stmt.setString(7, userticketdepart_date);
stmt.setString(8, userticketdepart_time);
stmt.setInt(9, userticketticket_number);
stmt.setString(10, userticketseattype);
stmt.setString(11, usertickettickettype);
stmt.setString(12, userticketfares);
stmt.setString(13, userticketticket_office);
stmt.executeUpdate();
return true;
}
@Override
public boolean update(UserTicket UserTicket) throws SQLException {
// TODO Auto-generated method stub
return false;
}
@Override
public void delete(int userticketid) throws SQLException {
Connection con = Util.getConnection();
String sqladd = "delete from userticket where userticketid=?";
PreparedStatement stmt = con.prepareStatement(sqladd);
stmt.setInt(1, userticketid);
ResultSet rs = null;
stmt.executeUpdate();
Util.closeAll(con, stmt, rs);
}
@Override
txtidentity_number.setColumns(10);
JLabel label_2 = new JLabel("账号");
label_2.setBounds(250, 240, 70, 23);
add(label_2);
txtaccout = new JTextField();
txtaccout.setBounds(350, 240, 180, 23);
add(txtaccout);
txtaccout.setColumns(10);
JLabel label_3 = new JLabel("密码");
label_3.setBounds(250, 310, 70, 23);
add(label_3);
txtPassword = new JTextField();
txtPassword.setBounds(350, 310, 180, 23);
add(txtPassword);
txtPassword.setColumns(10);
userDao = new UserDaoImpl();
JButton btnNewButton = new JButton("添加用户");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (txtname.getText().equals("")) { //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入姓名", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}
if (txtidentity_number.getText().equals("")) { //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入身份证号", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}
if (txtaccout.getText().equals("")) { //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入账号", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}
if (txtPassword.getText().equals("")) { //判断用户输入是否为空;
JOptionPane.showMessageDialog(null, "请输入密码", "警告对话框", JOptionPane.WARNING_MESSAGE);
return;
}
String name = txtname.getText();
String identity_number = txtidentity_number.getText();
String account = txtaccout.getText();
String password = txtPassword.getText();
if (account.length() < 1) {
JOptionPane.showMessageDialog(null, "账号必须大于0位!");
txtname.setText("");
txtidentity_number.setText("");
txtaccout.setText("");
userdao.add(name, identity_number, acc, pass);
JOptionPane.showMessageDialog(null, "注册成功!");
}
} catch (Exception e1) {
//System.out.println("插入失败");
//e1.printStackTrace();
}
}
} else if (e.getSource() == resetButton) {
textacc.setText("");
textpass.setText("");
textname.setText("");
textidentity_number.setText("");
}
}
}
/**
* 车票实体
*/
public class Ticket implements Serializable {
private int ticketid;
private String station_arrival;
private String station_depart;
private String depart_date;
private String depart_time;
private int ticket_number;
private String seattypeid;
private String tickettypeid;
private int tickets_left;
private String fares;
private String ticket_office;
public int getTicketid() {
return ticketid;
}
public void setTicketid(int ticketid) {
this.ticketid = ticketid;
}
public String getStation_arrival() {
return station_arrival;
public Userbuy_db() {
setLayout(new BorderLayout(0, 0));
JScrollPane scrollPane = new JScrollPane();
add(scrollPane, BorderLayout.CENTER);
table = new JTable();
scrollPane.setColumnHeaderView(table);
// 初始化存储表格数据的对象
model = new DefaultTableModel(new Object[][]{}, new String[]{"车票编号",
"到达站", "出发站", "发车日期", "发车时间", "车次", "座位类型", "机车类型", "余票", "票价", "售票站"});
// 将数据绑定到对象中
table.setModel(model);
table.setRowHeight(30);
scrollPane.setViewportView(table);
tickettypeDao = new TickettypeImpl();
ticketDao = new TicketImpl();
try {
loadData();
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
// 为表格绑定修改值后的事件
model.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
if (e.getColumn() < 0)
return;
String nVal = table.getValueAt(e.getLastRow(), e.getColumn())
.toString();
// 如果旧的值 和新的值一样,直接 返回
if (nVal.equals(oldValue)) {
return;
}
// 判断当前编辑的单元格是否是主键列
if (e.getColumn() == 0) {
// 还原旧的值
table.setValueAt(oldValue, e.getLastRow(), e.getColumn());
return;
}
// 更新数据