文章目录

  • 登陆界面Access.java
  • 注册Register.java
  • 注册界面RegisterFrame.java
  • 查找主界面FindMain.java
  • 输入起点终点查找车次Find1.java
  • 输入车次号查找车次Find2.java
  • 输入车次号查找的界面Find2Frame.java
  • 购票Purchase.java
  • 购票界面PurchaseFrame.java
  • 显示已购买的车票Ticket.java
  • 退票Delete.java
  • 退票界面DeleteFrame.java

相关请查看另一博客注意事项。

如果有一些问题的话可能之后会改进,也会适当增加一些功能。

登陆界面Access.java

package TraSystem;import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JOptionPane;import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.awt.event.ActionEvent;
import javax.swing.JPasswordField;public class Access extends JFrame {/*** */private static final long serialVersionUID = 1L;private JPanel contentPane;private JTextField textField;private JPasswordField passwordField;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {Access frame = new Access();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public Access() {setTitle("\u6B22\u8FCE\u4F7F\u7528\u706B\u8F66\u552E\u7968\u7CFB\u7EDF\uFF01");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(600, 300, 450, 340);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);JLabel label = new JLabel("\u7528\u6237\u767B\u5F55");label.setFont(new Font("微软雅黑", Font.BOLD, 30));JLabel lblNewLabel = new JLabel("\u7528\u6237\u540D");JLabel lblNewLabel_1 = new JLabel("\u5BC6\u7801");textField = new JTextField();textField.setColumns(10);passwordField = new JPasswordField();JButton btnNewButton = new JButton("\u767B\u9646");btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String user=textField.getText();String pass=new String(passwordField.getPassword());try{boolean com=compareWithSql(user,pass);if(com){JOptionPane.showMessageDialog(null, "登录成功!");FindMain t1=new FindMain(user);t1.setVisible(true);dispose();}else{JOptionPane.showMessageDialog(null, "登录失败!");}}catch(Exception e1){e1.printStackTrace();}}});btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 15));JButton button = new JButton("\u6CE8\u518C");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {RegisterFrame r=new RegisterFrame();r.setVisible(true);}});button.setFont(new Font("微软雅黑", Font.BOLD, 15));GroupLayout gl_contentPane = new GroupLayout(contentPane);gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(54).addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addComponent(lblNewLabel).addComponent(lblNewLabel_1)).addGap(23).addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING, false).addComponent(passwordField).addComponent(textField, GroupLayout.DEFAULT_SIZE, 165, Short.MAX_VALUE).addComponent(btnNewButton).addComponent(button, Alignment.TRAILING))).addGroup(gl_contentPane.createSequentialGroup().addGap(143).addComponent(label))).addContainerGap(135, Short.MAX_VALUE)));gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(25).addComponent(label).addGap(26).addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel).addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(55).addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_1).addComponent(passwordField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(47).addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).addComponent(btnNewButton).addComponent(button)).addContainerGap()));contentPane.setLayout(gl_contentPane);}
boolean compareWithSql(String accountT,String namesT) throws Exception{String sql;      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection conn=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=火车售票系统","sa","w12621058");Statement stmt = conn.createStatement();sql = "select * from 用户信息";ResultSet rs = stmt.executeQuery(sql);while(rs.next()){String acc = rs.getString(1);String names = rs.getString(2);if(acc.equals(accountT) && names.equals(namesT)){return true;}}return false;
}
}

注册Register.java

package TraSystem;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;import javax.swing.JOptionPane;public class Register {private Connection conn;public Register(String a,String b){try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");conn=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=火车售票系统","sa","w12621058");String sql="INSERT INTO 用户信息 VALUES('"+a+"','"+b+"')";String sql2="CREATE TABLE "+a+"订购信息(车次号 varchar(10),始发地 varchar(20),目的地 varchar(20),出发时间 varchar(30),PRIMARY KEY(车次号),FOREIGN KEY(车次号)REFERENCES 车次信息(车次号))";Statement stmt=conn.createStatement();stmt.executeUpdate(sql);stmt.executeUpdate(sql2);conn.close();JOptionPane.showMessageDialog(null, "注册成功!");} catch (ClassNotFoundException e) {JOptionPane.showMessageDialog(null, "注册失败!");e.printStackTrace();}catch (SQLException e) {JOptionPane.showMessageDialog(null, "注册失败!");e.printStackTrace();}          }}

注册界面RegisterFrame.java

package TraSystem;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JOptionPane;import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class RegisterFrame extends JFrame {/*** */private static final long serialVersionUID = 1L;private JPanel contentPane;private JTextField textField;private JTextField textField_1;public RegisterFrame() {setTitle("\u7528\u6237\u6CE8\u518C");setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(650, 300, 450, 350);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);JLabel label = new JLabel("\u8F93\u5165\u7528\u6237\u540D\uFF08\u6700\u957F10\u4E2A\u5B57\u7B26\uFF09");label.setFont(new Font("微软雅黑", Font.BOLD, 15));JLabel label_1 = new JLabel("\u7528\u6237\u6CE8\u518C");label_1.setFont(new Font("微软雅黑", Font.BOLD, 25));JLabel label_2 = new JLabel("\u8F93\u5165\u5BC6\u7801\uFF08\u6700\u957F10\u4E2A\u5B57\u7B26\uFF09");label_2.setFont(new Font("微软雅黑", Font.BOLD, 15));textField = new JTextField();textField.setColumns(10);textField_1 = new JTextField();textField_1.setColumns(10);JButton button = new JButton("\u6CE8\u518C");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String a=textField.getText();String b=textField_1.getText();if(a.equals("")||b.equals("")){JOptionPane.showMessageDialog(null, "请输入信息!");}else{new Register(a,b);dispose();}}});button.setFont(new Font("微软雅黑", Font.BOLD, 15));GroupLayout gl_contentPane = new GroupLayout(contentPane);gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(152).addComponent(label_1)).addGroup(gl_contentPane.createSequentialGroup().addContainerGap().addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addComponent(label).addComponent(label_2)).addGap(18).addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 149, GroupLayout.PREFERRED_SIZE).addComponent(textField, 148, 148, 148)))).addContainerGap(43, GroupLayout.PREFERRED_SIZE)).addGroup(gl_contentPane.createSequentialGroup().addGap(173).addComponent(button).addContainerGap(186, Short.MAX_VALUE)));gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(33).addComponent(label_1).addGap(41).addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING).addComponent(label).addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(56).addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).addComponent(label_2).addComponent(textField_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addPreferredGap(ComponentPlacement.RELATED, 43, Short.MAX_VALUE).addComponent(button).addContainerGap()));contentPane.setLayout(gl_contentPane);}}

查找主界面FindMain.java

package TraSystem;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;public class FindMain extends JFrame {/*** */private static final long serialVersionUID = 1L;private JPanel contentPane;private JTextField textField;private JTextField textField_1;public FindMain(String user) {setTitle("\u706B\u8F66\u552E\u7968\u7CFB\u7EDF");setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(600, 300, 450, 300);JMenuBar menuBar = new JMenuBar();setJMenuBar(menuBar);JMenu menu = new JMenu("\u7528\u6237\u4FE1\u606F");menuBar.add(menu);JMenuItem menuItem = new JMenuItem("\u5DF2\u8D2D\u8F66\u7968");menuItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new Ticket(user);}});menu.add(menuItem);JMenuItem menuItem_1 = new JMenuItem("\u9000\u7968\u7CFB\u7EDF");menuItem_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {DeleteFrame d1=new DeleteFrame(user);d1.setVisible(true);}});menu.add(menuItem_1);JMenuItem menuItem_2 = new JMenuItem("\u6CE8\u9500");menuItem_2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {JOptionPane.showMessageDialog(null, "注销成功!");dispose();Access frame = new Access();frame.setVisible(true);}});menu.add(menuItem_2);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);JLabel lblNewLabel = new JLabel("\u8F66\u6B21\u67E5\u8BE2");lblNewLabel.setFont(new Font("黑体", Font.BOLD, 30));textField = new JTextField();textField.setColumns(10);textField_1 = new JTextField();textField_1.setColumns(10);JButton button = new JButton("\u5F00\u59CB\u67E5\u8BE2");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String sfd=textField.getText();String mdd=textField_1.getText();new Find1(sfd,mdd,user);}});button.setFont(new Font("微软雅黑", Font.BOLD, 15));JLabel label = new JLabel("\u59CB\u53D1\u5730");JLabel label_1 = new JLabel("\u76EE\u7684\u5730");JButton button_1 = new JButton("\u7279\u5B9A\u8F66\u6B21\u53F7\u67E5\u8BE2");button_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {Find2Frame b=new Find2Frame(user);b.setVisible(true);}});button_1.setFont(new Font("微软雅黑", Font.BOLD, 15));GroupLayout gl_contentPane = new GroupLayout(contentPane);gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(142).addComponent(lblNewLabel).addGap(152)).addGroup(gl_contentPane.createSequentialGroup().addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(36).addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGroup(gl_contentPane.createSequentialGroup().addGap(53).addComponent(label))).addPreferredGap(ComponentPlacement.RELATED, 165, Short.MAX_VALUE).addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING).addGroup(gl_contentPane.createSequentialGroup().addComponent(textField_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addGap(49)).addGroup(gl_contentPane.createSequentialGroup().addComponent(label_1).addGap(81)))).addGroup(gl_contentPane.createSequentialGroup().addGap(75).addComponent(button).addGap(53).addComponent(button_1).addContainerGap(88, Short.MAX_VALUE)));gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 43, GroupLayout.PREFERRED_SIZE).addGap(35).addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).addComponent(label).addComponent(label_1)).addGap(18).addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(textField_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addPreferredGap(ComponentPlacement.RELATED, 37, Short.MAX_VALUE).addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).addComponent(button_1).addComponent(button)).addContainerGap()));contentPane.setLayout(gl_contentPane);}
}

输入起点终点查找车次Find1.java

package TraSystem;
import java.awt.BorderLayout;
import java.awt.Font;
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.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;public class Find1 extends JFrame{/*** */private static final long serialVersionUID = 1L;JTable table=new JTable();private Connection conn;public Find1(String sfd,String mdd,String user){JPanel contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));contentPane.setLayout(new BorderLayout(0, 0));setContentPane(contentPane);JButton button = new JButton("\u8D2D\u7968");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {PurchaseFrame pf=new PurchaseFrame(user);pf.setVisible(true);}});button.setFont(new Font("微软雅黑", Font.BOLD, 15));contentPane.add(button, BorderLayout.SOUTH);this.setBounds(650,300,800,200);this.setTitle("车次信息");this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");conn=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=火车售票系统","sa","w12621058");table=query(sfd,mdd);}   catch(Exception e){e.printStackTrace();}this.getContentPane().add(new JScrollPane(table));this.setVisible(true);try{conn.close();}catch(Exception e){e.printStackTrace();}}public JTable query(String start,String end) throws SQLException{DefaultTableModel tbmode=new DefaultTableModel();String sql="SELECT * FROM 车次信息 WHERE 始发地='"+start+"' AND 目的地='"+end+"'";try{Statement Stmt=conn.createStatement();ResultSet rs= Stmt.executeQuery(sql);ResultSetMetaData meta=rs.getMetaData();int colcount=meta.getColumnCount();for(int i=1;i<=colcount;i++)tbmode.addColumn(meta.getColumnName(i));Object[]col=new Object[colcount];while(rs.next()){for(int j=1;j<=col.length;j++)col[j-1]=rs.getString(j);tbmode.addRow(col);}rs.close();Stmt.close();}catch(Exception e){e.printStackTrace();} return new JTable(tbmode);}
}

输入车次号查找车次Find2.java

package TraSystem;import java.awt.BorderLayout;
import java.awt.Font;
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.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;public class Find2 extends JFrame{/*** */private static final long serialVersionUID = 1L;JTable table=new JTable();private Connection conn;public Find2(String a,String user){JPanel contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));contentPane.setLayout(new BorderLayout(0, 0));setContentPane(contentPane);JButton button = new JButton("\u8D2D\u7968");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {PurchaseFrame pf=new PurchaseFrame(user);pf.setVisible(true);}});button.setFont(new Font("微软雅黑", Font.BOLD, 15));contentPane.add(button, BorderLayout.SOUTH);this.setBounds(650,300,800,200);this.setTitle("车次信息");this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");conn=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=火车售票系统","sa","w12621058");table=query2(a);}   catch(Exception e){e.printStackTrace();}this.getContentPane().add(new JScrollPane(table));this.setVisible(true);try{conn.close();}catch(Exception e){e.printStackTrace();}}public JTable query2(String a) throws SQLException{DefaultTableModel tbmode=new DefaultTableModel();String sql="SELECT * FROM 车次信息 WHERE 车次号='"+a+"'";try{Statement Stmt=conn.createStatement();ResultSet rs= Stmt.executeQuery(sql);ResultSetMetaData meta=rs.getMetaData();int colcount=meta.getColumnCount();for(int i=1;i<=colcount;i++)tbmode.addColumn(meta.getColumnName(i));Object[]col=new Object[colcount];while(rs.next()){for(int j=1;j<=col.length;j++)col[j-1]=rs.getString(j);tbmode.addRow(col);}rs.close();Stmt.close();}catch(Exception e){e.printStackTrace();} return new JTable(tbmode);}
}

输入车次号查找的界面Find2Frame.java

package TraSystem;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class Find2Frame extends JFrame {/*** */private static final long serialVersionUID = 1L;private JPanel contentPane;private JTextField textField;public Find2Frame(String user) {setTitle("\u8F66\u6B21\u67E5\u8BE2");setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(650, 300, 450, 300);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);JLabel label = new JLabel("\u76F4\u63A5\u8F93\u5165\u9700\u8981\u67E5\u8BE2\u7684\u8F66\u6B21\u53F7");label.setForeground(Color.BLUE);label.setFont(new Font("微软雅黑", Font.BOLD, 25));textField = new JTextField();textField.setColumns(10);JButton button = new JButton("\u67E5\u8BE2");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {String a=textField.getText();new Find2(a,user);}});button.setFont(new Font("微软雅黑", Font.BOLD, 15));GroupLayout gl_contentPane = new GroupLayout(contentPane);gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(115).addComponent(textField, GroupLayout.PREFERRED_SIZE, 168, GroupLayout.PREFERRED_SIZE)).addGroup(gl_contentPane.createSequentialGroup().addGap(174).addComponent(button)).addGroup(gl_contentPane.createSequentialGroup().addGap(61).addComponent(label))).addContainerGap(61, Short.MAX_VALUE)));gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(39).addComponent(label).addGap(53).addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED, 51, Short.MAX_VALUE).addComponent(button).addContainerGap()));contentPane.setLayout(gl_contentPane);}
}

购票Purchase.java

package TraSystem;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;import javax.swing.JOptionPane;public class Purchase {private Connection conn;public Purchase(String a,String user){try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");conn=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=火车售票系统","sa","w12621058");String sql="insert into "+user+"订购信息 select 车次号,始发地,目的地,出发时间  from 车次信息 where 车次号='"+a+"' group by 车次号,始发地,目的地,出发时间";   String sql2="update 车次信息 set 剩余票数=剩余票数-1 where 车次号='"+a+"'";  //更新车次信息java.sql.Statement stmt=conn.createStatement();stmt.executeUpdate(sql);stmt.executeUpdate(sql2);conn.close();JOptionPane.showMessageDialog(null, "购票成功!");} catch (ClassNotFoundException e) {JOptionPane.showMessageDialog(null, "购票失败!");e.printStackTrace();}catch (SQLException e) {JOptionPane.showMessageDialog(null, "购票失败!");e.printStackTrace();}         }
}

购票界面PurchaseFrame.java

package TraSystem;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.LayoutStyle.ComponentPlacement;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class PurchaseFrame extends JFrame {/*** */private static final long serialVersionUID = 1L;private JPanel contentPane;private JTextField textField;/*** Create the frame.*/public PurchaseFrame(String user) {setTitle("\u8D2D\u4E70");setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(650, 300, 450, 300);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);JLabel label = new JLabel("\u8F93\u5165\u60A8\u8981\u8D2D\u4E70\u7684\u8F66\u6B21\u53F7");label.setForeground(Color.BLUE);label.setFont(new Font("微软雅黑", Font.BOLD, 30));textField = new JTextField();textField.setColumns(10);JButton button = new JButton("\u8D2D\u7968");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String a=textField.getText();new Purchase(a,user);}});button.setForeground(Color.BLUE);button.setFont(new Font("微软雅黑", Font.BOLD, 15));GroupLayout gl_contentPane = new GroupLayout(contentPane);gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(176).addComponent(button)).addGroup(gl_contentPane.createSequentialGroup().addGap(104).addComponent(textField, GroupLayout.PREFERRED_SIZE, 205, GroupLayout.PREFERRED_SIZE)).addGroup(gl_contentPane.createSequentialGroup().addGap(61).addComponent(label))).addContainerGap(61, Short.MAX_VALUE)));gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(32).addComponent(label).addGap(52).addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED, 53, Short.MAX_VALUE).addComponent(button).addContainerGap()));contentPane.setLayout(gl_contentPane);}
}

显示已购买的车票Ticket.java

package TraSystem;
import java.awt.BorderLayout;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;public class Ticket extends JFrame{/*** */private static final long serialVersionUID = 1L;JTable table=new JTable();private Connection conn;public Ticket(String user){JPanel contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));contentPane.setLayout(new BorderLayout(0, 0));setContentPane(contentPane);this.setBounds(600,300,800,300);this.setTitle("已购车次");this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");conn=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=火车售票系统","sa","w12621058");table=query(user);}   catch(Exception e){e.printStackTrace();}this.getContentPane().add(new JScrollPane(table));this.setVisible(true);try{conn.close();}catch(Exception e){e.printStackTrace();}}public JTable query(String user) throws SQLException{DefaultTableModel tbmode=new DefaultTableModel();String sql="SELECT * FROM "+user+"订购信息";try{Statement Stmt=conn.createStatement();ResultSet rs= Stmt.executeQuery(sql);ResultSetMetaData meta=rs.getMetaData();int colcount=4;for(int i=1;i<=colcount;i++)tbmode.addColumn(meta.getColumnName(i));Object[]col=new Object[colcount];while(rs.next()){for(int j=1;j<=col.length;j++)col[j-1]=rs.getString(j);tbmode.addRow(col);}rs.close();Stmt.close();}catch(Exception e){e.printStackTrace();} return new JTable(tbmode);}
}

退票Delete.java

package TraSystem;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;import javax.swing.JOptionPane;public class Delete {private Connection conn;public Delete(String a,String user){try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");conn=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=火车售票系统","sa","w12621058");String sql="delete from "+user+"订购信息 where 车次号='"+a+"'";   String sql2="update 车次信息 set 剩余票数=剩余票数+1 where 车次号='"+a+"'"; //更新车次信息Statement stmt=conn.createStatement();stmt.executeUpdate(sql);stmt.executeUpdate(sql2);conn.close();JOptionPane.showMessageDialog(null, "退票成功!");} catch (ClassNotFoundException e) {JOptionPane.showMessageDialog(null, "退票失败!");e.printStackTrace();}catch (SQLException e) {JOptionPane.showMessageDialog(null, "退票失败!");e.printStackTrace();}          }}

退票界面DeleteFrame.java

package TraSystem;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.LayoutStyle.ComponentPlacement;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class DeleteFrame extends JFrame {/*** */private static final long serialVersionUID = 1L;private JPanel contentPane;private JTextField textField;public DeleteFrame(String user) {setTitle("\u9000\u7968\u7CFB\u7EDF");setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(650, 300, 450, 300);contentPane = new JPanel();contentPane.setForeground(Color.BLUE);contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);JLabel label = new JLabel("\u8F93\u5165\u60A8\u8981\u9000\u7968\u7684\u8F66\u6B21\u53F7");label.setForeground(Color.BLUE);label.setFont(new Font("微软雅黑", Font.BOLD, 30));textField = new JTextField();textField.setColumns(10);JButton btnNewButton = new JButton("\u9000\u7968");btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String a=textField.getText();new Delete(a,user);}});btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 15));btnNewButton.setForeground(Color.BLUE);GroupLayout gl_contentPane = new GroupLayout(contentPane);gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(Alignment.TRAILING, gl_contentPane.createSequentialGroup().addContainerGap(109, Short.MAX_VALUE).addComponent(textField, GroupLayout.PREFERRED_SIZE, 211, GroupLayout.PREFERRED_SIZE).addGap(102)).addGroup(gl_contentPane.createSequentialGroup().addGap(177).addComponent(btnNewButton).addContainerGap(182, Short.MAX_VALUE)).addGroup(gl_contentPane.createSequentialGroup().addGap(61).addComponent(label).addContainerGap(61, Short.MAX_VALUE)));gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addGroup(gl_contentPane.createSequentialGroup().addGap(29).addComponent(label).addGap(55).addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED, 53, Short.MAX_VALUE).addComponent(btnNewButton).addContainerGap()));contentPane.setLayout(gl_contentPane);}}

Java课设:火车售票系统(代码)相关推荐

  1. c语言售票系统主要函数,c语言课设电影院售票系统.docx

    struct inf { char rate[20]; char name[20]; int time_hour; int time_min; int seat; int sell; }inf[10] ...

  2. java课设 火车订票_JAVA课程设计火车票管理系统

    JAVA课程设计火车票管理系统 *******************实践教学*******************兰州理工大学计算机与通信学院2013 年秋季学期Java 课程设计题 目: 火车票管 ...

  3. 【密码学】Java课设-文件加密系统(适用于任何文件)

    Java实现文件加密解密 前言 一.密码学入门 1.对称加密 2.非对称加密 二.程序代码 1.welcome类(欢迎界面) 2.Log类(登录界面) 3.Register类(注册界面) 4.Inde ...

  4. java课设小迷宫含代码_Java小项目之迷宫游戏的实现方法

    项目要求: 一个网格迷宫由n行n列的单元格组成,每个大院个要么是空地(用0表示),要么是障碍物(用1表示),你的任务是找一条从起点到终点的移动序列,其中只能上下左右移动到相邻单元格.任何时候都不能在有 ...

  5. java课程设计总结迷宫_java课设走迷宫(含代码)#优质参考

    java课设走迷宫(含代码)#优质参考 目录1设计目的1.1课程设计的目的2总体设计2.1设计思路2.2设计方法3关键技术4程序流程5主要源代码6. 运行结果及结论7.参考文献1.设计目的1.1课程设 ...

  6. 100套java课设源码参考/毕设源码代码参考

    引言:本人是一个Java 开发者,喜欢分享Java课设源码和代码,用于课程设计或者作业学习参考噢,开发一些有技术含量的Java web源码,主要的技术有JSP+Servlet,SSM/SpringBo ...

  7. Java课设:火车售票系统2.0

    文章目录 注意 系统概述 数据库表的变化 类名变化 运行 管理员登陆 管理员界面 录入车次 修改车次信息 查看所有车次 删除车次 管理员用户资料查询 注意 火车售票系统等java课设已经停止更新了,博 ...

  8. Java课设:关于火车售票系统的注意事项

    文章目录 三个表的说明 连接数据库 jdbc包 local host:1433 连接数据库服务器的登陆名及密码 此课设的一系列问题集中在此地讨论 三个表的说明 之前在博客里我说一开始需要创建三个表,当 ...

  9. 火车售票系统 java_基于jsp的火车售票系统-JavaEE实现火车售票系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的火车售票系统, 该项目可用各类java课程设计大作业中, 火车售票系统的系统架构分为前后台两部分, 最终实现在线上 ...

最新文章

  1. 建堆 java_堆排序就这么简单
  2. java threas.jion_Java Thread.join详解
  3. hadoop学习--基于Hive的Hadoop日志分析
  4. 通过防火墙堵住×××安全漏洞
  5. Matlab增加块注释
  6. selenium 解析网页_用Selenium进行网页搜刮
  7. html百度天气api,百度API 免费接口获取天气预报
  8. 计算机指令要素,【计算机系统】CPU指令执行流程与指令流水线原理
  9. 信息学奥赛一本通(2052:【例3.2】范围判断)
  10. 从入门到精通进阶篇 - 设置负载阶梯式压测场景(详解教程)
  11. php中的each()用法和list()用法
  12. MediaCodec进行编解码AAC(文件格式转换)
  13. 手绘风格的原型图制作工具
  14. 百度云盘客户端去除顶部广告
  15. 简易 shell 爬搜狐
  16. 「NOI2018」冒泡排序
  17. Lua基础入门—— 写出自己的魔兽世界插件
  18. day 09文件处理
  19. python实现陷波滤波器、低通滤波器、高斯滤波器、巴特沃斯滤波器
  20. DP2515国产带SPI接口汽车CAN总线控制器芯片兼容替代MCP2515/MCP2515-I/ST

热门文章

  1. Jupyterhub嵌入Superset之Jupyterhub配置
  2. Dim i% 中的 %
  3. python 数据分组后看每组多少个_【Python】分组统计GroupBy技术详解
  4. 关于FPGA中有符号数表示方法的一些认识
  5. 隐形字符复制_复制器的隐形传送翘曲驱动以及科幻小说实现的可能性更高
  6. Power BI和Tableau对比分析,到底要学哪个?
  7. 均衡之刃这款球拍是谁创作的
  8. echo在Java什么意思_echo是什么意思
  9. citespace与mysql_如何深刻理解citespace的数据结构?
  10. python取模运算