第一次用java写这么多东西,发现开发方面确实比C++高很多,哈哈哈当然要记录下来
~
ps:课设中涉及的所有数据都是存在数据库中的~~~
1、首先当然是连接数据库啦,我这了采用的编程语言是java,所以通过java的jdbc连接SQL server2017
代码:
import java.sql.*;
public class connectDatabase {
static Connection conn;
public static Connection getConnect()
{
String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=宾馆管理";
String userName="sa";
String userPwd="123456";
try
{
Class.forName(driverName);
conn=DriverManager.getConnection(dbURL,userName,userPwd);
System.out.println("连接数据库成功");
}
catch(Exception e)
{
e.printStackTrace();
System.out.print("连接失败");
}
return conn;
}
}
其中的一些电脑的端口配置我就不多讲啦~
2、首先是登陆界面,这里我在sqlserver里面有一张管理员表,表中存着管理员ID和密码,所以实现了简单的权限管理:
public class login extends JFrame implements ActionListener
{
private JFrame frame;
private JTextField Tname;
private JPasswordField Tpwd;
private JButton Jexit;
private JButton Jlogin;
private JLabel labelBack;
private ImageIcon backImg = new ImageIcon("image//login.jpg");
private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");
private JButton changePwd;
private JButton addAdmin;
Connection con;
Statement st;
public login()
{
initData();
}
public void initData()
{
try{ UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}catch(Exception e) {
System.out.println(e.toString());
}
frame = new JFrame("登录");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setIconImage(icon);
frame.setSize(600, 440);
frame.setResizable(false);
frame.setLayout(null);
Container cp = frame.getContentPane();
cp.setLayout(null);
((JPanel)cp).setOpaque(false);
labelBack = new JLabel(backImg);
Tname = new JTextField(15);
Tpwd = new JPasswordField(15);
Jexit = new JButton("退出");
Jlogin = new JButton("登陆");
changePwd = new JButton("更改密码");
addAdmin = new JButton("新增管理");
changePwd.setBounds(478,297,90,20);
addAdmin.setBounds(476,240,90,20);
labelBack.setBounds(0,0,600,400);
Tname.setBounds(new Rectangle(253,228,205,39));
Tpwd.setBounds(new Rectangle(253,288,205,39));
Jlogin.setBounds(new Rectangle(252,343,79,33));
Jexit.setBounds(new Rectangle(379,343,79,33));
Jlogin.setFont(new java.awt.Font("宋体",Font.PLAIN,18));
Tpwd.setFont(new java.awt.Font("宋体",Font.PLAIN,18));
Jexit.setFont(new java.awt.Font("宋体",Font.PLAIN,18));
Tname.setFont(new java.awt.Font("宋体",Font.PLAIN,18));
changePwd.setForeground(Color.BLUE);
addAdmin.setForeground(Color.BLUE);
changePwd.setContentAreaFilled(false);
addAdmin.setContentAreaFilled(false);
frame.getLayeredPane().add(labelBack,new Integer(Integer.MIN_VALUE));
cp.add(changePwd);
cp.add(addAdmin);
cp.add(Tpwd);
cp.add(Tname);
cp.add(Jexit);
cp.add(Jlogin);
changePwd.addActionListener(this);
addAdmin.addActionListener(this);
Jexit.addActionListener(this);
Jlogin.addActionListener(this);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸
Dimension frameSize = frame.getSize();//获取主界面尺寸
if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;
if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == Jlogin) {
String Sname = Tname.getText();
char[] Spwd = Tpwd.getPassword();
String s = new String(Spwd);
System.out.println(s);
boolean isCorrrct = false;
if (Sname.isEmpty() || s.isEmpty() ) {
JOptionPane.showMessageDialog(frame, "不允许有空!");
} else {
try {
con = connectDatabase.getConnect();
String sql="select * from 管理员表 where 管理员ID='"+Sname+"'"+"and 密码="+"'"+s+"'";
st = con.createStatement();
ResultSet res = st.executeQuery(sql);
if (res.next()) isCorrrct = true;
else isCorrrct = false;
res.close();
st.close();
con.close();
} catch (Exception e3) {
e3.printStackTrace();
}
if (isCorrrct)
{
JOptionPane.showMessageDialog(frame, "登陆成功!");
frame.setVisible(false);
functionUI f = new functionUI();
f.setVisible(true);
}
else
{
JOptionPane.showMessageDialog(frame, "用户名或者密码错误!");
Tpwd.setText("");
}
}
}
else if(e.getSource() == Jexit)
{
try {
frame.setVisible(false);
MainFrame m = new MainFrame();
m.setVisible(true);
}catch (Exception ex)
{
ex.printStackTrace();
}
}
else if(e.getSource() == changePwd){
change_pwd cc = new change_pwd();
frame.setVisible(false);
}
else if(e.getSource() == addAdmin)
{
frame.setVisible(false);
confirm_addmin cc = new confirm_addmin();
}
}
public static void main(String[] args)
{
login L = new login();
}
}
里面的图片当然是自己设置的,运行界面最后我会放一些;
3、然后是更改密码,更改密码在登陆界面是有接口的:
public class change_pwd extends JFrame implements ActionListener
{
private JFrame frame;
private JTextField tname;
private JTextField toldpwd;
private JPasswordField tnewPwd;
private JPasswordField tconfirmPwd;
private JButton Jexit;
private JButton Jconfirm;
private JLabel labelBack;
private ImageIcon backImg = new ImageIcon("image//change_pwd.jpg");
private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg");
Connection con;
PreparedStatement st;
public change_pwd()
{
initData();
}
public void initData()
{
try{ UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}catch(Exception e) {
System.out.println(e.toString());
}
frame = new JFrame("新增管理员");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setIconImage(icon);
frame.setSize(600, 440);
frame.setResizable(false);
frame.setLayout(null);
Container cp = frame.getContentPane();
cp.setLayout(null);
((JPanel)cp).setOpaque(false);
labelBack = new JLabel(backImg);
Jexit = new JButton("返回");
Jconfirm = new JButton("确认");
labelBack = new JLabel(backImg);
tconfirmPwd = new JPasswordField();
tnewPwd = new JPasswordField();
toldpwd = new JTextField();
tname = new JTextField();
labelBack.setBounds(0,0,600,400);
Jexit.setBounds(495,341,79,33);
Jconfirm.setBounds(495,291,79,33);
tconfirmPwd.setBounds(237,348,205,26);
tnewPwd.setBounds(237,305,205,26);
toldpwd.setBounds(237,262,205,26);
tname.setBounds(237,219,205,26);
frame.getLayeredPane().add(labelBack,new Integer(Integer.MIN_VALUE));
cp.add(Jexit);
cp.add(Jconfirm);
cp.add(tconfirmPwd);
cp.add(tname);
cp.add(tnewPwd);
cp.add(toldpwd);
Jexit.addActionListener(this);
Jconfirm.addActionListener(this);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸
Dimension frameSize = frame.getSize();//获取主界面尺寸
if(frameSize.height>screenSize.height)frameSize.height = screenSize.height;
if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == Jconfirm)
{
con = connectDatabase.getConnect();
try {
String s1 = tname.getText();
s1 = s1.trim();
String s2 = toldpwd.getText();
s2 = s2.trim();
String s3 = tnewPwd.getText();
s3 = s3.trim();
String s4 = tconfirmPwd.getText();
s4 = s4.trim();
if (s1.isEmpty() || s2.isEmpty() || s3.isEmpty() || s4.isEmpty()) {
JOptionPane.showMessageDialog(frame, "不允许有空");
} else {
String sql1 = "select * from 管理员表 where 管理员ID=? and 密码=?";
st = con.prepareStatement(sql1);
st.setString(1,s1);
st.setString(2,s2);
ResultSet rs = st.executeQuery();
if(rs.next())
{
if(s3.equals(s4))
{
try {
String sql2 = "update 管理员表 set 密码 = ? where 管理员ID=?";
st = con.prepareStatement(sql2);
st.setString(1, s3);
st.setString(2, s1);
st.executeUpdate();
JOptionPane.showMessageDialog(frame,"修改成功!");
toldpwd.setText("");
tnewPwd.setText("");
tconfirmPwd.setText("");
tname.setText("");
}catch (SQLException ex)
{
JOptionPane.showMessageDialog(frame,"修改失败!");
toldpwd.setText("");
tnewPwd.setText("");
tconfirmPwd.setText("");
ex.printStackTrace();
}
}
}else {
JOptionPane.showMessageDialog(frame,"账号密码不匹配!");
toldpwd.setText("");
tnewPwd.setText("");
tconfirmPwd.setText("");
}
}
}catch (SQLException ex)
{
ex.printStackTrace();
}
}else if(e.getSource() == Jexit)
{
try {
login LL = new login();
frame.setVisible(false);
}catch (Exception ex)
{
ex.printStackTrace();
}
}
}
public static void main(String[] args)
{
change_pwd L = new change_pwd();
}
}
4、接着是新增管理员,新增管理员这里需要验证管理员,所以多了个验证管理员的界面(其实我觉得这里有点冗余了~):
(1)、验证管理员:
(2)、新增管理员:import java.awt.*; import java.awt.event.*; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import javax.swing.*; public class confirm_addmin extends JFrame implements ActionListener { private JFrame frame; private JTextField Tname; private JPasswordField Tpwd; private JButton Jexit; private JButton Jlogin; private JLabel labelBack; private ImageIcon backImg = new ImageIcon("image//confirm_changepwd.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); Connection con; Statement st; public confirm_addmin() { initData(); } public void initData() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } frame = new JFrame("管理员账户确认"); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setIconImage(icon); frame.setSize(600, 440); frame.setResizable(false); frame.setLayout(null); Container cp = frame.getContentPane(); cp.setLayout(null); ((JPanel)cp).setOpaque(false); labelBack = new JLabel(backImg); Tname = new JTextField(15); Tpwd = new JPasswordField(15); Jexit = new JButton("返回"); Jlogin = new JButton("确认"); labelBack.setBounds(0,0,600,400); Tname.setBounds(new Rectangle(234,228,205,39)); Tpwd.setBounds(new Rectangle(234,288,205,39)); Jlogin.setBounds(new Rectangle(233,343,79,33)); Jexit.setBounds(new Rectangle(360,343,79,33)); Jlogin.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); Tpwd.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); Jexit.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); Tname.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); frame.getLayeredPane().add(labelBack,new Integer(Integer.MIN_VALUE)); cp.add(Tpwd); cp.add(Tname); cp.add(Jexit); cp.add(Jlogin); Jexit.addActionListener(this); Jlogin.addActionListener(this); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = frame.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); frame.setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource() == Jlogin) { String Sname = Tname.getText(); char[] Spwd = Tpwd.getPassword(); String s = new String(Spwd); System.out.println(s); boolean isCorrrct = false; if (Sname.isEmpty() || s.isEmpty() ) { JOptionPane.showMessageDialog(frame, "不允许有空!"); } else { try { con = connectDatabase.getConnect(); String sql="select * from 管理员表 where 管理员ID='"+Sname+"'"+"and 密码="+"'"+s+"'"; st = con.createStatement(); ResultSet res = st.executeQuery(sql); if (res.next()) isCorrrct = true; else isCorrrct = false; res.close(); st.close(); con.close(); } catch (Exception e3) { e3.printStackTrace(); } if (isCorrrct) { JOptionPane.showMessageDialog(frame, "管理员确认成功!"); frame.setVisible(false); add_admin f = new add_admin(); } else { JOptionPane.showMessageDialog(frame, "用户名或者密码错误!"); Tpwd.setText(""); } } } else if(e.getSource() == Jexit) { frame.setVisible(false); login m = new login() ; } } public static void main(String[] args) { confirm_addmin L = new confirm_addmin(); } }
5、登陆之后就是功能界面了:public class add_admin extends JFrame implements ActionListener { private JFrame frame; private JTextField Tnewname; private JPasswordField Tpwd; private JPasswordField TconfirmPwd; private JButton Jexit; private JButton Jconfirm; private JLabel labelBack; private ImageIcon backImg = new ImageIcon("image//add_admin.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); Connection con; PreparedStatement st; public add_admin() { initData(); } public void initData() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } frame = new JFrame("新增管理员"); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setIconImage(icon); frame.setSize(600, 440); frame.setResizable(false); frame.setLayout(null); Container cp = frame.getContentPane(); cp.setLayout(null); ((JPanel)cp).setOpaque(false); labelBack = new JLabel(backImg); Tnewname = new JTextField(15); Tpwd = new JPasswordField(15); Jexit = new JButton("返回"); Jconfirm = new JButton("确认"); TconfirmPwd = new JPasswordField(15); TconfirmPwd.setBounds(new Rectangle(237,306,205,26)); labelBack.setBounds(0,0,600,400); Tnewname.setBounds(new Rectangle(237,217,205,26)); Tpwd.setBounds(new Rectangle(237,262,205,26)); Jconfirm.setBounds(new Rectangle(237,351,79,33)); Jexit.setBounds(new Rectangle(363,351,79,33)); Jconfirm.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); Tpwd.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); Jexit.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); Tnewname.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); TconfirmPwd.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); frame.getLayeredPane().add(labelBack,new Integer(Integer.MIN_VALUE)); cp.add(TconfirmPwd); cp.add(Tpwd); cp.add(Tnewname); cp.add(Jexit); cp.add(Jconfirm); Jexit.addActionListener(this); Jconfirm.addActionListener(this); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = frame.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); frame.setVisible(true); } public void actionPerformed(ActionEvent e) { con = connectDatabase.getConnect(); if(e.getSource() == Jconfirm) { try{ String s1 = Tnewname.getText(); char[] c1 = Tpwd.getPassword(); String s2 = String.valueOf(c1); char[] c2 = TconfirmPwd.getPassword(); String s3 = String.valueOf(c2); s1 = s1.trim(); s2 = s2.trim(); s3 = s3.trim(); if(s3.isEmpty()||s2.isEmpty()||s1.isEmpty()) { JOptionPane.showMessageDialog(frame,"不允许有空"); }else { if(!s3.equals(s2)) { JOptionPane.showMessageDialog(frame,"密码不一致"); } else{ String sql = "insert 管理员表 values(?,?)"; st = con.prepareStatement(sql); st.setString(1,s1); st.setString(2,s2); st.executeUpdate(); JOptionPane.showMessageDialog(frame,"添加成功"); TconfirmPwd.setText(""); Tnewname.setText(""); Tpwd.setText(""); st.close(); } } con.close(); }catch (Exception ex) { JOptionPane.showMessageDialog(frame,"添加失败"); ex.printStackTrace(); } } else if(e.getSource() == Jexit) { frame.setVisible(false); login m = new login() ; } } public static void main(String[] args) { add_admin L = new add_admin(); } }
public class functionUI extends JFrame implements ActionListener { private JButton emptyRoom; private JButton handleRoom; private JButton historyRoom; private JButton manageVip; private JButton exitRoom; private JButton setting; private JButton visitor; private JButton exit; private Container mainPanel; private JPanel jpane1; private JLabel labe1; private ImageIcon img1 = new ImageIcon("image//function.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); public functionUI() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } mainPanel = this.getContentPane(); setSize(1024,795); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); setIconImage(icon); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); setLayout(null); setVisible(true); setTitle("管理员界面"); jpane1 = new JPanel(); jpane1.setSize(1024,768); jpane1.setBounds(0,0,1024,800); jpane1.setLayout(null); emptyRoom = new JButton(new ImageIcon("image//Button//FJCX.png","")); handleRoom = new JButton(new ImageIcon("image//Button//KFCL.jpg","")); historyRoom = new JButton(new ImageIcon("image//Button//KFLS.jpg","")); manageVip = new JButton(new ImageIcon("image//Button//GBGL.png","")); exitRoom = new JButton(new ImageIcon("image//Button//TF.jpg","")); setting = new JButton(new ImageIcon("image//Button//YGGL.png","")); exit = new JButton(); visitor = new JButton(new ImageIcon("image//Button//FKGL.png","")); labe1 = new JLabel(img1); labe1.setBounds(0,0,1024,768); emptyRoom.setBounds(new Rectangle(0,154,256,192)); handleRoom.setBounds(new Rectangle(258,173,256,192)); historyRoom.setBounds(new Rectangle(512,173,256,192)); manageVip.setBounds(new Rectangle(768,152,256,192)); exitRoom.setBounds(new Rectangle(0,424,256,192)); setting.setBounds(new Rectangle(258,405,256,192)); exit.setBounds(new Rectangle(768,424,256,192)); visitor.setBounds(512,405,258,187); jpane1.setOpaque(false); visitor.setOpaque(false); exit.setOpaque(false); setting.setOpaque(false); exit.setContentAreaFilled(false); this.getLayeredPane().add(labe1,new Integer(Integer.MIN_VALUE)); jpane1.add(visitor); jpane1.add(emptyRoom); jpane1.add(handleRoom); jpane1.add(historyRoom); jpane1.add(manageVip); jpane1.add(exitRoom); jpane1.add(setting); jpane1.add(exit); mainPanel.add(jpane1); jpane1.setVisible(true); ((JPanel)mainPanel).setOpaque(false); (this).getLayeredPane().add(jpane1,new Integer(Integer.MAX_VALUE)); emptyRoom.addActionListener(this); handleRoom.addActionListener(this); historyRoom.addActionListener(this); manageVip.addActionListener(this); exitRoom.addActionListener(this); setting.addActionListener(this); exit.addActionListener(this); visitor.addActionListener(this); } public void actionPerformed(ActionEvent en) { if(en.getSource()==emptyRoom) { Select_Room sr = new Select_Room(); } if(en.getSource() == historyRoom) { Select_History sh = new Select_History(); } if(en.getSource()==manageVip) { VIP_manage vip = new VIP_manage(); } if(en.getSource()==exitRoom) { cancel_room ca = new cancel_room(); } if(en.getSource()==setting) { Staff_manage sta = new Staff_manage(); } if(en.getSource()==handleRoom) { AddCustomerInfo Add = new AddCustomerInfo(); } if(en.getSource() == visitor) { Visitor vis = new Visitor(); } if(en.getSource()==exit) { MainFrame M = new MainFrame(); this.setVisible(false); M.setVisible(true); } } public static void main(String[] args) { functionUI f = new functionUI(); } }
6、然后是房间查询,这里我感觉我想的可细,具体发现就只能靠你们自己了,反正我是想的很全面的(我真的是灰常棒)~
7、然后是开房处理,这里就是往数据库里面添加数据:public class Select_Room extends JFrame implements ActionListener{ private JTextField textRoom; private JPanel jPane1; private JScrollPane jPane2; private JButton butSelect; private JLabel backLab; private ImageIcon img1; private Container content; private JComboBox com1; private JComboBox com2; private JTable table; private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); private Connection con = null; private PreparedStatement st = null; private String[] s2 = {"是","否","全部"}; private String[] s1 = {"单人间","双人间","总统间"}; private String[] s3 = {"序号","房间号","房间类型","价格","身份证号"}; int rownum = 18; int[] colWidth = {50,100,100,100,163}; int rowhigh = 29; int num = 0; private DefaultTableModel mod ; public Select_Room() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } setTitle("房间查询"); con = connectDatabase.getConnect(); content = this.getContentPane(); setSize(550,728); setResizable(false); setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); this.setLayout(null); this.setIconImage(icon); com1 = new JComboBox(s1); com2 = new JComboBox(s2); jPane1 = new JPanel(); jPane1.setLayout(null); table_test ta = new table_test(); table = ta.getTable(s3,colWidth,rownum,rowhigh); mod = (DefaultTableModel) table.getModel(); jPane2 = new JScrollPane(table); butSelect = new JButton("查询"); textRoom = new JTextField(); butSelect.setBounds(new Rectangle(202,58,140,42)); com2.setBounds(new Rectangle(465,19,68,26)); com1.setBounds(new Rectangle(270,19,85,26)); textRoom.setBounds(new Rectangle(93,19,63,26)); jPane1.setBounds(0,0,550,100); jPane2.setBounds(20,112,513,551); com1.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); com2.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); img1 = new ImageIcon("image//select_room.jpg"); backLab = new JLabel(img1); butSelect.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); backLab.setBounds(0,0,550,700); ((JPanel)content).setOpaque(false); this.getLayeredPane().add(backLab,new Integer(Integer.MIN_VALUE)); jPane2.add(table.getTableHeader()); jPane2.setOpaque(false); jPane2.getViewport().setOpaque(false); table.setOpaque(false); jPane1.setOpaque(false); jPane1.add(butSelect); jPane1.add(com1); jPane1.add(com2); jPane1.add(textRoom); content.add(jPane1); content.add(jPane2); butSelect.addActionListener(this); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); setVisible(true); } public void actionPerformed (ActionEvent e) { if(e.getSource() == butSelect) { if(num!=0) { while (num>rownum) { mod.removeRow(num-1); num--; } while(num-->0) { table.setValueAt("",num,0); table.setValueAt("",num,1); table.setValueAt("",num,2); table.setValueAt("",num,3); table.setValueAt("",num,4); } } if(!textRoom.getText().isEmpty()) { num = setTableData_rno(); } else{ num = setTableData_else(); } } } private int setTableData_rno() { String rno = textRoom.getText(); textRoom.setText(""); int row = 0; if(!rno.isEmpty()) { boolean t = false; try { String sql = "Select 房间表.房间号,类型,价格,客户身份证号 from 房间表,房间使用表 where 房间表.房间号= ? and 房间使用表.房间号 = 房间表.房间号"; String sql1 = "Select 房间表.房间号,类型,价格 from 房间表 where 房间表.房间号= ? "; st = con.prepareStatement(sql); st.setString(1,rno); ResultSet rs = st.executeQuery(); if(rs.next()) { t = true; table.setValueAt("1", 0, 0); table.setValueAt(rs.getString(1).trim(), 0, 1); table.setValueAt(rs.getString(2).trim(), 0, 2); table.setValueAt(String.valueOf(rs.getInt(3)).trim(), 0, 3); table.setValueAt(rs.getString(4).trim(), 0, 4); } else{ st = con.prepareStatement(sql1); st.setString(1,rno); rs = st.executeQuery(); if (rs.next()) { t = true; table.setValueAt("1", 0, 0); table.setValueAt(rs.getString(1).trim(), 0, 1); table.setValueAt(rs.getString(2).trim(), 0, 2); table.setValueAt(String.valueOf(rs.getInt(3)).trim(), 0, 3); } } if(!t) { JOptionPane.showMessageDialog(this,"房间号不存在!"); } rs.close(); }catch (SQLException e) { e.printStackTrace(); } } return 1; } private int setTableData_else() { boolean t = false; int count = 0; try{ String sql,sql1; String form = (String)com1.getSelectedItem(); String is_empty = (String)com2.getSelectedItem(); if(is_empty!="全部") { if(is_empty=="是"){ sql = "select 房间表.房间号,类型,价格 from 房间表 where 类型 = ? and 房间表.房间号 not in(select 房间号 from 房间使用表)"; st = con.prepareStatement(sql); st.setString(1,form); ResultSet rs1 = st.executeQuery(); st.clearParameters(); while (rs1.next()) { if(rs1.getRow()>rownum) { String[] s = {String.valueOf(count+1).trim(),rs1.getString(1).trim(),rs1.getString(2).trim(),rs1.getString(3).trim()}; mod.addRow(s); count++; }else { table.setValueAt(count + 1, count, 0); table.setValueAt(rs1.getString(1).trim(), count, 1); table.setValueAt(rs1.getString(2).trim(), count, 2); table.setValueAt(String.valueOf(rs1.getInt(3)).trim(), count, 3); count++; } } rs1.close(); } else{ sql = "select 房间表.房间号,类型,价格,客户身份证号 from 房间表,房间使用表 where 类型 = ? and 房间表.房间号 = 房间使用表.房间号"; st = con.prepareStatement(sql); st.setString(1,form); ResultSet rs2 = st.executeQuery(); while (rs2.next()) { if(count+1>rownum) { String[] s = {String.valueOf(count+1).trim(),rs2.getString(1).trim(),rs2.getString(2).trim(),rs2.getString(3).trim(),rs2.getString(4).trim()}; mod.addRow(s); count++; }else { table.setValueAt(count + 1, count, 0); table.setValueAt(rs2.getNString(1).trim(), count, 1); table.setValueAt(rs2.getNString(2).trim(), count, 2); table.setValueAt(String.valueOf(rs2.getInt(3)).trim(), count, 3); table.setValueAt(rs2.getNString(4).trim(), count, 4); count++; } } rs2.close(); } } else { sql = "select 房间表.房间号,类型,价格 from 房间表 where 类型 = ? and 房间表.房间号 not in(select 房间号 from 房间使用表)"; sql1 = "select 房间表.房间号,类型,价格,客户身份证号 from 房间表,房间使用表 where 类型 = ? and 房间表.房间号 = 房间使用表.房间号"; st = con.prepareStatement(sql1); st.setString(1,form); ResultSet rs4 = st.executeQuery(); while (rs4.next()) { if(count+1>rownum) { String[] s = {String.valueOf(count+1).trim(),rs4.getString(1).trim(),rs4.getString(2).trim(),rs4.getString(3).trim(),rs4.getString(4).trim()}; mod.addRow(s); count++; }else { table.setValueAt(count + 1, count, 0); table.setValueAt(rs4.getString(1).trim(), count, 1); table.setValueAt(rs4.getString(2).trim(), count, 2); table.setValueAt(String.valueOf(rs4.getInt(3)), count, 3); table.setValueAt(rs4.getString(4).trim(), count, 4); count++; } } rs4.close(); st = con.prepareStatement(sql); st.setString(1,form); ResultSet rs3 = st.executeQuery(); while (rs3.next()) { if(count+1>rownum) { String[] s = {String.valueOf(count+1).trim(),rs3.getString(1).trim(),rs3.getString(2).trim(),rs3.getString(3).trim(),""}; mod.addRow(s); count++; } else { table.setValueAt(count + 1, count, 0); table.setValueAt(rs3.getString(1).trim(), count, 1); table.setValueAt(rs3.getString(2).trim(), count, 2); table.setValueAt(String.valueOf(rs3.getInt(3)).trim(), count, 3); table.setValueAt("", count, 4); count++; } } } }catch (SQLException e) { e.printStackTrace(); } return count; } public void finalize() { try { con.close(); st.close(); }catch (SQLException e) { e.printStackTrace(); } } public static void main(String[] args) { Select_Room test0 = new Select_Room(); } }
public class AddCustomerInfo extends JFrame implements ActionListener { Connection con;//连接数据库对象; Statement st;//用于发送sql语; private JFrame frame; private JLabel jLabsno; private JLabel jLabsname; private JLabel jLabsex; private JLabel jLabcome; private JLabel jLabform; private JTextField jTextf1;//文本框\ private JTextField jTextf2; private JTextField jTextf3; private JTextField jTextf4; private JRadioButton jRadioman;//单选按钮 private JRadioButton jRadiowoman; private ButtonGroup buttonGroup1;//按钮组 private JButton jButtoncommit; private JRadioButton Room1; private JRadioButton Room2; private JRadioButton Room3; private ButtonGroup buttonGroup2; private JButton buttonBack; private JLabel age; private JLabel leaveTime; private JTextField jTextf5; private JLabel labback; private JLabel jLabDays; private JTextField jTextf6; private JLabel labDay; private ImageIcon img1 = new ImageIcon("image//handleRoom.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//.jpg"); public AddCustomerInfo() { try { UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception e) { System.out.println(e.toString()); } frame = new JFrame("客户信息录入:"); jLabsno = new JLabel("身份证号:");//标注 jLabsname = new JLabel("姓 名:"); jLabsex = new JLabel("性 别:"); jLabcome = new JLabel("入房时间:"); jLabform = new JLabel("房间类型:"); jTextf1 = new JTextField();//文本框 jTextf2 = new JTextField(); jTextf3 = new JTextField(); jTextf4 = new JTextField(); labDay = new JLabel("天"); jRadioman = new JRadioButton("男");//单选按钮 jRadiowoman = new JRadioButton("女"); buttonGroup1 = new ButtonGroup();//按钮组 jButtoncommit = new JButton("保存");//按钮 Room1 = new JRadioButton("单人房"); Room2 = new JRadioButton("多人房"); Room3 = new JRadioButton("总统房"); buttonGroup2 = new ButtonGroup(); buttonBack = new JButton("返回"); age = new JLabel("年 龄:"); jTextf5 = new JTextField(); leaveTime = new JLabel("离开时间:"); jLabDays = new JLabel("入住天数:"); jTextf6 = new JTextField(); labback = new JLabel(img1); Init(); } public void Init() { frame.setResizable(false); frame.setSize(450,500); frame.setIconImage(icon); frame.getContentPane().setBackground(Color.white); frame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = frame.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); jLabsno.setBounds(new Rectangle(50,30,64,24)); jLabsname.setBounds(new Rectangle(50,71,61,27)); jLabsex.setBounds(new Rectangle(50,106,61,27)); jLabcome.setBounds(new Rectangle(50,185,59,25)); jLabform.setBounds(new Rectangle(50,313,54,24)); jTextf1.setBounds(new Rectangle(150,30,200,30)); jTextf2.setBounds(new Rectangle(150,69,200,30)); jTextf4.setBounds(new Rectangle(150,185,200,29)); jTextf3.setBounds(new Rectangle(150,143,200,29)); jTextf6.setBounds(new Rectangle(150,230,200,29)); jLabDays.setBounds(new Rectangle(50,233,54,24)); labDay.setBounds(new Rectangle(370,233,30,20)); age.setBounds(new Rectangle(50,143,59,25)); jRadioman.setBounds(new Rectangle(150,103,65,30)); jRadiowoman.setBounds(new Rectangle(250,103,85,30)); Room1.setBounds(new Rectangle(150,313,80,30)); Room2.setBounds(new Rectangle(230,313,80,30)); Room3.setBounds(new Rectangle(310,313,80,30)); jButtoncommit.setBounds(new Rectangle(100,370,70,30)); buttonBack.setBounds(new Rectangle(250,370,70,30)); leaveTime.setBounds(new Rectangle(50,273,59,29)); jTextf5.setBounds(new Rectangle(150,273,200,29)); labback.setBounds(0,0,450,470); Room1.setOpaque(false); Room2.setOpaque(false); Room3.setOpaque(false); jRadiowoman.setOpaque(false); jRadioman.setOpaque(false); frame.getLayeredPane().add(labback,new Integer(Integer.MIN_VALUE)); ((JPanel)frame.getContentPane()).setOpaque(false); jRadioman.setSelected(true);//默认被选中 Room1.setSelected(true); jButtoncommit.addActionListener(this); buttonBack.addActionListener(this); frame.setLayout(null); frame.add(labDay); frame.add(jLabDays); frame.add(jTextf6); frame.add(age); frame.add(jTextf4); frame.add(jLabsname); frame.add(jTextf1); frame.add(jLabsno); frame.add(jTextf2); frame.add(jLabsex); frame.add(jRadioman); frame.add(jRadiowoman); frame.add(jLabcome); frame.add(jTextf3); frame.add(jLabform); frame.add(Room1); frame.add(Room2); frame.add(Room3); frame.add(leaveTime); frame.add(jTextf5); frame.add(jButtoncommit); frame.add(buttonBack); buttonGroup1.add(jRadioman);//单选按钮加入按钮组中 buttonGroup1.add(jRadiowoman); buttonGroup2.add(Room1); buttonGroup2.add(Room2); buttonGroup2.add(Room3); frame.setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource() == jButtoncommit) { String sno = jTextf1.getText(); String sname = jTextf2.getText(); String sex = ""; String sage = jTextf3.getText(); String scome = jTextf4.getText(); String sleave = jTextf5.getText(); String days = jTextf6.getText(); String sform = ""; days = days.trim(); sno = sno.trim(); if(sno.isEmpty()||sname.isEmpty()||sage.isEmpty()||scome.isEmpty()||sleave.isEmpty()) { JOptionPane.showMessageDialog(this,"不允许有空"); } else if(sno.length()!=18) { JOptionPane.showMessageDialog(this,"身份证号输入有误"); } else { int days_num = Integer.parseInt(days); if (jRadioman.isSelected()) sex += "男"; if (jRadiowoman.isSelected()) sex += "女"; if (Room1.isSelected()) sform += "单人间"; if (Room2.isSelected()) sform += "双人间"; if (Room3.isSelected()) sform += "总统间"; con = connectDatabase.getConnect(); try { st = con.createStatement(); } catch (Exception e2) { e2.printStackTrace(); } try { String sql = "select* from Empty_room where 类型 = '" + sform + "'"; ResultSet rs = st.executeQuery(sql); if(rs.next()) { int days_values = days_num*rs.getInt(3); String s = "房间号为:"+rs.getString(1)+"\n价格为:"+days_values+""; System.out.println(s); int t = JOptionPane.showConfirmDialog(null,s,"提示",JOptionPane.YES_NO_OPTION); if(t == JOptionPane.YES_OPTION) { String sql1 = "insert into 客户表 values('" + sno + "','" + sname + "','" + sex + "','" + sage + "','" + scome + "','" + sleave + "')"; String sql2 = "insert into 房间使用表 values('"+rs.getString(1)+"','"+sno+"')"; String sql3 = "insert into 住房历史表 values('" + sname + "','" + sno + "','" + scome + "','" + sleave + "','"+rs.getString(1)+"')"; String sq14 = "insert into 资金收支历史 values("+days_values+",'"+scome+"','"+sno+"','"+rs.getString(1)+"')"; st.executeUpdate(sq14); st.executeUpdate(sql3); st.executeUpdate(sql1); st.executeUpdate(sql2); jTextf6.setText(""); jTextf1.setText(""); jTextf2.setText(""); jTextf3.setText(""); jTextf4.setText(""); jTextf5.setText(""); JOptionPane.showMessageDialog(this, "保存成功!"); } else if(t == JOptionPane.NO_OPTION) { JOptionPane.showMessageDialog(this, "取消保存!"); } } else { JOptionPane.showMessageDialog(this, "暂无空余房间,保存失败!"); } } catch (Exception ex) { JOptionPane.showMessageDialog(this, "保存失败!"); ex.printStackTrace(); } } } if(e.getSource() == buttonBack) { frame.setVisible(false); } } public static void main(String[] args) { AddCustomerInfo x = new AddCustomerInfo(); } }
8、然后是开房历史查询,也很强大的~
9、然后是贵宾管理,里面还包括充值界面,然后选中贵宾那一条记录就可以删除贵宾了:public class Select_History extends JFrame implements ActionListener { private JPanel jPane1; private JScrollPane jpane2; private JTextField textRno; private JTextField textDate; private JButton butSelect; private JTable table; private JLabel labBackground; private ImageIcon bacIco = new ImageIcon("image//room_history.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); private Container cont; private Connection con = null; private PreparedStatement st = null; private String s1[] = {"序号","姓名","身份证号","房间号","入住时间","离开时间"}; private int[] colWidth = {40,80,113,60,110,110}; private int rowNum = 18; private int rowhigh = 29; private int num = 0; private DefaultTableModel mod; public Select_History() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } con = connectDatabase.getConnect(); setTitle("开房历史查询"); setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); setLayout(null); setSize(550,728); setResizable(false); setIconImage(icon); cont = this.getContentPane(); ((JPanel)cont).setOpaque(false); labBackground = new JLabel(bacIco); labBackground.setBounds(0,0,550,700); this.getLayeredPane().add(labBackground,new Integer(Integer.MIN_VALUE)); jPane1 = new JPanel(); jPane1.setLayout(null); table_test ta = new table_test(); table = ta.getTable(s1,colWidth,rowNum,rowhigh); mod = (DefaultTableModel) table.getModel(); jpane2 = new JScrollPane(table); textRno = new JTextField(); textDate = new JTextField(); butSelect = new JButton("查 询"); butSelect.setBounds(202,58,140,42); textDate.setBounds(396,19,132,26); textRno.setBounds(129,19,162,26); jPane1.setBounds(0,0,550,100); jpane2.setBounds(20,112,513,551); jPane1.setOpaque(false); jpane2.setOpaque(false); jpane2.getViewport().setOpaque(false); jPane1.add(butSelect); jPane1.add(textDate); jPane1.add(textRno); butSelect.addActionListener(this); cont.add(jPane1); cont.add(jpane2); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource() == butSelect) { if(num!=0) { while (num>rowNum) { mod.removeRow(num-1); num--; } while(num-->0) { table.setValueAt("",num,0); table.setValueAt("",num,1); table.setValueAt("",num,2); table.setValueAt("",num,3); table.setValueAt("",num,4); table.setValueAt("", num, 5); } } num = setTableData(); } } public int setTableData() { int count = 0; String rno = textRno.getText(); String data = textDate.getText(); if (rno.isEmpty() && data.isEmpty()) JOptionPane.showMessageDialog(this, "身份证号和日期不能都为空!"); else { try { if (data.isEmpty()) { String sql = "select 姓名,身份证号,房间号,入住时间,退房时间 from 住房历史表 where 身份证号 = ?"; st = con.prepareStatement(sql); st.setString(1,rno); } else if (rno.isEmpty()) { String sql = "select 姓名,身份证号,房间号,入住时间,退房时间 from 住房历史表 where 入住时间 = ?"; st = con.prepareStatement(sql); st.setString(1,data); } else{ String sql = "select 姓名,身份证号,房间号,入住时间,退房时间 from 住房历史表 where 入住时间 = ? and 身份证号 = ?"; st = con.prepareStatement(sql); st.setString(1,data); st.setString(2,rno); } ResultSet rs = st.executeQuery(); while(rs.next()) { if(count+1>rowNum) { String[] s = {String.valueOf(count+1).trim(),rs.getString(1).trim(),rs.getString(2).trim(),rs.getString(3).trim(),rs.getString(4).trim(),rs.getString(5).trim()}; mod.addRow(s); count++; }else { table.setValueAt(count + 1, count, 0); table.setValueAt(rs.getNString(1).trim(), count, 1); table.setValueAt(rs.getNString(2).trim(), count, 2); table.setValueAt(rs.getNString(3).trim(), count, 3); table.setValueAt(rs.getNString(4).trim(), count, 4); table.setValueAt(rs.getNString(5).trim(), count, 5); count++; } } }catch (SQLException e) { e.printStackTrace(); } } return count; } public static void main(String[] args) { Select_History h = new Select_History(); } }
(1)、贵宾管理界面:(2)、充值界面:public class VIP_manage extends JFrame implements ActionListener { private JPanel jPane1; private JScrollPane jpane2; private JTextField textRno; private JTextField textVipID; private JButton butSelect; private JTable table; private JLabel labBackground; private JButton buttonRecharge; private JButton buttonDelete; private ImageIcon bacIco = new ImageIcon("image//VIP_manage.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); private Container cont; private Connection con = null; private PreparedStatement st = null; private String s1[] = {"序号","姓名","贵宾卡ID","性别","身份证号","余额"}; private int[] colWidth = {40,80,113,40,160,80}; private int rowNum = 16; private int rowhigh = 29; private int num = 0; private DefaultTableModel mod; public VIP_manage() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } con = connectDatabase.getConnect(); setTitle("开房历史查询"); setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); setLayout(null); setSize(550,728); setResizable(false); setIconImage(icon); cont = this.getContentPane(); ((JPanel)cont).setOpaque(false); labBackground = new JLabel(bacIco); labBackground.setBounds(0,0,550,700); this.getLayeredPane().add(labBackground,new Integer(Integer.MIN_VALUE)); jPane1 = new JPanel(); jPane1.setLayout(null); table_test ta = new table_test(); table = ta.getTable(s1,colWidth,rowNum,rowhigh); mod = (DefaultTableModel) table.getModel(); jpane2 = new JScrollPane(table); textRno = new JTextField(); textVipID = new JTextField(); butSelect = new JButton("查 询"); buttonDelete = new JButton("删除"); buttonRecharge = new JButton("充值"); buttonDelete.setBounds(302,618,98,30); buttonRecharge.setBounds(150,618,98,30); butSelect.setBounds(202,58,140,42); textVipID.setBounds(396,19,132,26); textRno.setBounds(121,19,162,26); jPane1.setBounds(0,0,550,100); jpane2.setBounds(20,112,513,492); jPane1.setOpaque(false); jpane2.setOpaque(false); jpane2.getViewport().setOpaque(false); jPane1.add(butSelect); jPane1.add(textVipID); jPane1.add(textRno); butSelect.addActionListener(this); buttonRecharge.addActionListener(this); buttonDelete.addActionListener(this); cont.add(jPane1); cont.add(jpane2); cont.add(buttonDelete); cont.add(buttonRecharge); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); num = setTableData(); setVisible(true); } private void tableCon() { if(num!=0) { while (num>rowNum) { mod.removeRow(num-1); num--; } while(num-->0) { table.setValueAt("",num,0); table.setValueAt("",num,1); table.setValueAt("",num,2); table.setValueAt("",num,3); table.setValueAt("",num,4); table.setValueAt("", num, 5); } } } public int setTableData() { int count = 0; try { String sql = "select 姓名,贵宾ID,性别,身份证号,贵宾卡余额 from 贵宾表"; st = con.prepareStatement(sql); ResultSet rs = st.executeQuery(); while(rs.next()) { if(count+1>rowNum) { String[] s = {String.valueOf(count+1).trim(),rs.getString(1).trim(),rs.getString(2).trim(),rs.getString(3).trim(),rs.getString(4).trim(),rs.getString(5).trim()}; mod.addRow(s); count++; }else { table.setValueAt(count + 1, count, 0); table.setValueAt(rs.getNString(1).trim(), count, 1); table.setValueAt(rs.getNString(2).trim(), count, 2); table.setValueAt(rs.getString(3).trim(), count, 3); table.setValueAt(rs.getNString(4).trim(), count, 4); table.setValueAt(rs.getInt(5), count, 5); count++; } } }catch (SQLException e) { e.printStackTrace(); } return count; } public void actionPerformed(ActionEvent e) { if(e.getSource() == butSelect) { try { String s1 = textRno.getText(); String s2 = textVipID.getText(); if (s1.isEmpty() && s2.isEmpty()) { JOptionPane.showMessageDialog(this, "身份证和贵宾卡ID不允许都为空!"); num = setTableData(); } else { String sql; if (s1.isEmpty()) { sql = "select 姓名,贵宾ID,性别,身份证号,贵宾卡余额 from 贵宾表 where 贵宾ID = ?"; st = con.prepareStatement(sql); st.setString(1,s2); } else if (s2.isEmpty()) { sql = "select 姓名,贵宾ID,性别,身份证号,贵宾卡余额 from 贵宾表 where 身份证号 = ?"; st = con.prepareStatement(sql); st.setString(1,s1); } ResultSet rs = st.executeQuery(); if(rs.next()) { tableCon(); table.setValueAt(1, 0, 0); table.setValueAt(rs.getNString(1).trim(), 0, 1); table.setValueAt(rs.getNString(2).trim(), 0, 2); table.setValueAt(rs.getString(3).trim(), 0, 3); table.setValueAt(rs.getNString(4).trim(), 0, 4); table.setValueAt(rs.getInt(5), 0, 5); num = 1; } else { JOptionPane.showMessageDialog(this,"没有找到此人"); num = setTableData(); } } }catch (Exception ex) { ex.printStackTrace(); } } if(e.getSource() == buttonDelete) { try { int index = table.getSelectedRow(); String s1 = table.getValueAt(index,2).toString(); String sql = "delete from 贵宾表 where 贵宾ID = ?"; String s2 = "是否删除贵宾:"+s1+"?"; int t = JOptionPane.showConfirmDialog(null,s2,"提示",JOptionPane.YES_NO_OPTION); if(t == JOptionPane.YES_OPTION) { st = con.prepareStatement(sql); st.setString(1, s1); st.executeUpdate(); JOptionPane.showMessageDialog(this,"删除成功!"); tableCon(); num = setTableData(); }else if(t == JOptionPane.NO_OPTION) { JOptionPane.showMessageDialog(this,"删除取消!"); } }catch (Exception ex) { JOptionPane.showMessageDialog(this,"删除失败!"); ex.printStackTrace(); } } if(e.getSource() == buttonRecharge) { try { con.close(); recharge_ui rec = new recharge_ui(); this.setVisible(false); }catch (Exception ex) { ex.printStackTrace(); } } } public static void main(String[] args) { VIP_manage vv = new VIP_manage(); } }
10、然后是退房呢:public class recharge_ui extends JFrame implements ActionListener { private JTextField textRno1; private JTextField textvipID1; private JButton buttonSelect; private JTextField textName; private JTextField textSex; private JTextField textRno2; private JTextField textvipID2; private JTextField textbalance; private JTextField textrecharge; private JButton buttonRecharge; private ImageIcon bacIco = new ImageIcon("image//recharge.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); private Container cont; private JLabel labelBac; private Connection con; private PreparedStatement st; public recharge_ui() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } setSize(550,725); setResizable(false); setIconImage(icon); setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); setTitle("贵宾卡充值"); setLayout(null); cont = this.getContentPane(); labelBac = new JLabel(bacIco); textRno1 = new JTextField(); textvipID1 = new JTextField(); textName = new JTextField(); textSex = new JTextField(); textRno2 = new JTextField(); textvipID2 = new JTextField(); textbalance = new JTextField(); textrecharge = new JTextField(); buttonSelect = new JButton("查询"); buttonRecharge = new JButton("确认充值"); buttonRecharge.setBounds(225,618,110,42); buttonSelect.setBounds(202,58,160,42); textrecharge.setBounds(164,545,323,39); textbalance.setBounds(164,463,323,39); textRno2.setBounds(164,299,323,39); textSex.setBounds(165,217,323,39); textName.setBounds(164,135,323,39); textvipID1.setBounds(396,19,132,26); textRno1.setBounds(119,19,162,26); labelBac.setBounds(0,0,550,700); textvipID2.setBounds(164,381,323,39); buttonRecharge.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); buttonSelect.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textrecharge.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textbalance.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textRno2.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textSex.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textName.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textvipID1.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textRno1.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textvipID2.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); ((JPanel)cont).setOpaque(false); textvipID2.setOpaque(false); textrecharge.setOpaque(false); textbalance.setOpaque(false); textRno2.setOpaque(false); textSex.setOpaque(false); textName.setOpaque(false); buttonSelect.addActionListener(this); buttonRecharge.addActionListener(this); cont.add(textvipID2); cont.add(textvipID1); cont.add(textRno1); cont.add(textRno2); cont.add(textName); cont.add(textrecharge); cont.add(textbalance); cont.add(textSex); cont.add(buttonRecharge); cont.add(buttonSelect); this.getLayeredPane().add(labelBac,new Integer(Integer.MIN_VALUE)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); setVisible(true); } public void actionPerformed(ActionEvent e) { con = connectDatabase.getConnect(); if(e.getSource() == buttonSelect) { try { String s1 = textRno1.getText(); String s2 = textvipID1.getText(); if(!s1.isEmpty()||!s2.isEmpty()) { if (!s1.isEmpty()) { String sql = "select 姓名,性别,身份证号,贵宾ID,贵宾卡余额 from VIP where 身份证号 = ?"; st = con.prepareStatement(sql); st.setString(1, s1); } else if (!s2.isEmpty()) { String sql = "select 姓名,性别,身份证号,贵宾ID,贵宾卡余额 from VIP where 贵宾ID = ?"; st = con.prepareStatement(sql); st.setString(1, s2); } ResultSet rs = st.executeQuery(); if(rs.next()) { textName.setText(rs.getString(1)); textSex.setText(rs.getString(2)); textRno2.setText(rs.getString(3)); textvipID2.setText(rs.getString(4)); textbalance.setText(rs.getString(5)); } }else{ JOptionPane.showMessageDialog(this,"身份证号和贵宾卡ID不允许都为空!"); } }catch (SQLException ex) { ex.printStackTrace(); } } if(e.getSource()==buttonRecharge) { try{ String s1 = textrecharge.getText(); String s2 = textvipID2.getText(); s1 = s1.trim(); int x1 = Integer.parseInt(s1); if(s1.isEmpty()||s2.isEmpty()) { if(s1.isEmpty()) { JOptionPane.showMessageDialog(this, "充值金额不能为空!"); }else { JOptionPane.showMessageDialog(this, "无此贵宾!"); } } else { String sql1 = "update 贵宾表 set 贵宾卡余额 = 贵宾卡余额+? where 贵宾ID = ?"; st = con.prepareStatement(sql1); st.setInt(1,x1); st.setString(2,s2); st.executeUpdate(); JOptionPane.showMessageDialog(this,"充值成功!"); } }catch (Exception ex) { JOptionPane.showMessageDialog(this,"充值失败!"); ex.printStackTrace(); } } } public static void main(String[] args) { recharge_ui c = new recharge_ui(); } }
public class cancel_room extends JFrame implements ActionListener { private JTextField textRno1; private JTextField textRoom1; private JButton buttonSelect; private JTextField textName; private JTextField textSex; private JTextField textRno2; private JTextField textRoom2; private JTextField textComeTime; private JButton buttonCancel; private ImageIcon bacIco = new ImageIcon("image//cancel_room.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); private Container cont; private JLabel labelBac; private Connection con; private PreparedStatement st; public cancel_room() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } setSize(550,725); setResizable(false); setIconImage(icon); setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); setTitle("退房处理"); setLayout(null); cont = this.getContentPane(); labelBac = new JLabel(bacIco); textRno1 = new JTextField(); textRoom1 = new JTextField(); textName = new JTextField(); textSex = new JTextField(); textRno2 = new JTextField(); textRoom2 = new JTextField(); textComeTime = new JTextField(); buttonSelect = new JButton("查询"); buttonCancel = new JButton("退订"); buttonCancel.setBounds(225,618,98,30); buttonSelect.setBounds(202,58,160,42); textComeTime.setBounds(164,535,323,39); textRoom2.setBounds(164,435,323,39); textRno2.setBounds(164,335,323,39); textSex.setBounds(164,235,323,39); textName.setBounds(164,135,323,39); textRoom1.setBounds(396,19,132,26); textRno1.setBounds(129,19,162,26); labelBac.setBounds(0,0,550,700); buttonCancel.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); buttonSelect.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textComeTime.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textRoom2.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textRno2.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textSex.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textName.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textRoom1.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); textRno1.setFont(new java.awt.Font("宋体",Font.PLAIN,18)); ((JPanel)cont).setOpaque(false); textComeTime.setOpaque(false); textRoom2.setOpaque(false); textRno2.setOpaque(false); textSex.setOpaque(false); textName.setOpaque(false); buttonSelect.addActionListener(this); buttonCancel.addActionListener(this); cont.add(textRoom1); cont.add(textRno1); cont.add(textRno2); cont.add(textName); cont.add(textComeTime); cont.add(textRoom2); cont.add(textSex); cont.add(buttonCancel); cont.add(buttonSelect); this.getLayeredPane().add(labelBac,new Integer(Integer.MIN_VALUE)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); setVisible(true); } public void actionPerformed(ActionEvent e) { con = connectDatabase.getConnect(); if(e.getSource() == buttonSelect) { try { String s1 = textRno1.getText(); String s2 = textRoom1.getText(); if(!s1.isEmpty()||!s2.isEmpty()) { if (!s1.isEmpty()) { String sql = "select 姓名,性别,客户身份证号,房间号,入住时间 from room_customer where 客户身份证号 = ?"; st = con.prepareStatement(sql); st.setString(1, s1); } else if (!s2.isEmpty()) { String sql = "select 姓名,性别,客户身份证号,房间号,入住时间 from room_customer where 房间号 = ?"; st = con.prepareStatement(sql); st.setString(1, s2); } ResultSet rs = st.executeQuery(); if(rs.next()) { textName.setText(rs.getString(1)); textSex.setText(rs.getString(2)); textRno2.setText(rs.getString(3)); textRoom2.setText(rs.getString(4)); textComeTime.setText(rs.getString(5)); }else{ JOptionPane.showMessageDialog(this,"不存在此开房记录!"); } }else{ JOptionPane.showMessageDialog(this,"身份证号和房间号不允许都为空!"); } }catch (SQLException ex) { ex.printStackTrace(); } } if(e.getSource()==buttonCancel) { try{ String s1 = textRno2.getText(); s1 = s1.trim(); if(s1.isEmpty()) { JOptionPane.showMessageDialog(this,"不存在此开房记录!"); } else { String ss = "确认退掉房间:"+s1+""; int t = JOptionPane.showConfirmDialog(null,ss,"提示",JOptionPane.YES_NO_OPTION); if(t == JOptionPane.YES_OPTION) { String sql1 = "delete from 房间使用表 where 客户身份证号 = ?"; String sql2 = "delete from 客户表 where 身份证号 = ?"; st = con.prepareStatement(sql1); st.setString(1, s1); st.executeUpdate(); st = con.prepareStatement(sql2); st.setString(1, s1); st.executeUpdate(); JOptionPane.showMessageDialog(this, "退房成功"); textName.setText(""); textSex.setText(""); textRno2.setText(""); textRoom2.setText(""); textComeTime.setText(""); }else if(t == JOptionPane.NO_OPTION) { JOptionPane.showMessageDialog(this, "退房取消"); } } }catch (Exception ex) { ex.printStackTrace(); } try { con.close(); }catch (SQLException ex) { ex.printStackTrace(); } } } public static void main(String[] args) { cancel_room c = new cancel_room(); } }
11、接着是员工管理界面,包括新增员工界面,查询到员工数据后可以直接在界面上更改信息然后提交到数据库:
(1)、员工管理:
public class Staff_manage extends JFrame implements ActionListener { private JTextField textID1; private JButton butSelect; private JTextField textSname; private JTextField textIID2; private JTextField textSex; private JTextField textTle; private JTextField textPost; private JButton butChange; private JButton butDelete; private JLabel labBac; private JButton butAdd; private Connection con = null; private PreparedStatement st = null; private Container cont = null; private ImageIcon bacIco = new ImageIcon("image//staff.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); public Staff_manage() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } setTitle("员工管理"); con = connectDatabase.getConnect(); cont = this.getContentPane(); ((JPanel)cont).setOpaque(false); setSize(550,725); setResizable(false); setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); this.setLayout(null); this.setIconImage(icon); labBac = new JLabel(bacIco); textID1 = new JTextField(); textSname = new JTextField(); textIID2 = new JTextField(); textSex = new JTextField(); textTle = new JTextField(); textPost = new JTextField(); butSelect = new JButton("查询"); butChange = new JButton("确认更改"); butDelete = new JButton("删除"); butAdd = new JButton("增加员工"); butAdd.setBounds(398,68,89,19); butSelect.setBounds(202,58,140,42); textTle.setBounds(164,435,323,39); butChange.setBounds(150,618,110,30); butDelete.setBounds(302,618,98,30); textSex.setBounds(164,335,323,39); textSname.setBounds(164,135,323,39); textIID2.setBounds(164,235,323,39); textID1.setBounds(252,19,162,26); textPost.setBounds(164,535,323,39); labBac.setBounds(0,0,550,700); butSelect.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); butChange.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); butDelete.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textPost.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textTle.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textSex.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textIID2.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textID1.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textSname.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); butAdd.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,14)); butAdd.setForeground(Color.blue); butAdd.addActionListener(this); butDelete.addActionListener(this); butChange.addActionListener(this); butSelect.addActionListener(this); butAdd.setContentAreaFilled(false); textPost.setOpaque(false); textIID2.setOpaque(false); textSname.setOpaque(false); textSex.setOpaque(false); textTle.setOpaque(false); cont.add(butChange); cont.add(butDelete); cont.add(butSelect); cont.add(textID1); cont.add(textIID2); cont.add(textPost); cont.add(textSex); cont.add(textSname); cont.add(textTle); cont.add(butAdd); this.getLayeredPane().add(labBac,new Integer(Integer.MIN_VALUE)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource() == butSelect) { try { String s1 = textID1.getText(); if (s1.isEmpty()) { JOptionPane.showMessageDialog(this, "员工ID不允许为空!"); } else { String sql = "select * from 员工表 where 员工ID = ?"; st = con.prepareStatement(sql); st.setString(1,s1); ResultSet rs = st.executeQuery(); if(rs.next()) { textSname.setText(rs.getString(1).trim()); textIID2.setText(rs.getString(2).trim()); textSex.setText(rs.getString(3).trim()); textTle.setText(rs.getString(4).trim()); textPost.setText(rs.getString(5).trim()); }else { JOptionPane.showMessageDialog(this,"无此员工!"); textID1.setText(""); textSname.setText(""); textIID2.setText(""); textSex.setText(""); textTle.setText(""); textPost.setText(""); } } }catch (Exception ex) { ex.printStackTrace(); } } if(e.getSource() == butChange) { try { String s0 = textID1.getText(); String s1 = textSname.getText(); String s2 = textIID2.getText(); String s3 = textSex.getText(); String s4 = textTle.getText(); String s5 = textPost.getText(); s0 = s0.trim(); s1 = s1.trim(); s2 = s2.trim(); s3 = s3.trim(); s4 = s4.trim(); s5 = s5.trim(); if(!s0.equals(s2)) { JOptionPane.showMessageDialog(this,"员工ID不允许更改!"); } else { String sql = "update 员工表 set 姓名 = ?,性别 = ?,电话 = ?,职位 = ? where 员工ID = ?"; st = con.prepareStatement(sql); st.setString(1, s1); st.setString(2, s3); st.setString(3, s4); st.setString(4, s5); st.setString(5, s0); st.executeUpdate(); JOptionPane.showMessageDialog(this, "更改成功!"); textID1.setText(""); textSname.setText(""); textIID2.setText(""); textSex.setText(""); textTle.setText(""); textPost.setText(""); } }catch (Exception ex) { JOptionPane.showMessageDialog(this,"更改失败!"); ex.printStackTrace(); } } if(e.getSource() == butAdd) { this.setVisible(false); addStaff adds = new addStaff(); } if(e.getSource() == butDelete) { try { String s1 = textIID2.getText(); s1 = s1.trim(); if(s1.isEmpty()) { JOptionPane.showMessageDialog(this,"员工ID不允许为空!"); } else { String ss = "是否删除员工:"+s1+"?"; int t = JOptionPane.showConfirmDialog(null,ss,"提示",JOptionPane.YES_NO_OPTION); if(t == JOptionPane.YES_OPTION) { String sql = "delete from 员工表 where 员工ID = ?"; st = con.prepareStatement(sql); st.setString(1, s1); st.executeUpdate(); JOptionPane.showMessageDialog(this, "删除成功!"); textID1.setText(""); textSname.setText(""); textIID2.setText(""); textSex.setText(""); textTle.setText(""); textPost.setText(""); }else if(t == JOptionPane.NO_OPTION) { JOptionPane.showMessageDialog(this, "删除取消!"); } } }catch (Exception ex) { JOptionPane.showMessageDialog(this, "删除失败!"); ex.printStackTrace(); } } } public static void main(String[] args) { Staff_manage sta = new Staff_manage(); } }
(2)、新增员工界面:
public class addStaff extends JFrame implements ActionListener { private JTextField textSname; private JTextField textIID2; private JTextField textSex; private JTextField textTle; private JTextField textPost; private JLabel labBac; private JButton butSave; private JButton butBack; private Connection con = null; private PreparedStatement st = null; private Container cont = null; private ImageIcon bacIco = new ImageIcon("image//add_staff.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); public addStaff() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } setTitle("员工管理"); con = connectDatabase.getConnect(); cont = this.getContentPane(); ((JPanel)cont).setOpaque(false); setSize(550,725); setResizable(false); setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); this.setLayout(null); this.setIconImage(icon); labBac = new JLabel(bacIco); textSname = new JTextField(); textIID2 = new JTextField(); textSex = new JTextField(); textTle = new JTextField(); textPost = new JTextField(); butBack = new JButton("返回"); butSave = new JButton("保存"); textTle.setBounds(164,435,323,39); textSex.setBounds(164,335,323,39); textSname.setBounds(164,135,323,39); textIID2.setBounds(164,235,323,39); textPost.setBounds(164,535,323,39); labBac.setBounds(0,0,550,700); butSave.setBounds(150,618,98,30); butBack.setBounds(302,618,98,30); textPost.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textTle.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textSex.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textIID2.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textSname.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); butBack.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); butSave.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textPost.setOpaque(false); textIID2.setOpaque(false); textSname.setOpaque(false); textSex.setOpaque(false); textTle.setOpaque(false); cont.add(butBack); cont.add(butSave); cont.add(textIID2); cont.add(textPost); cont.add(textSex); cont.add(textSname); cont.add(textTle); butSave.addActionListener(this); butBack.addActionListener(this); this.getLayeredPane().add(labBac,new Integer(Integer.MIN_VALUE)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource() == butBack) { this.setVisible(false); Staff_manage sta = new Staff_manage(); } if(e.getSource() == butSave ) { try { String s1 = textSname.getText(); String s2 = textIID2.getText(); String s3 = textSex.getText(); String s4 = textTle.getText(); String s5 = textPost.getText(); if(s1.isEmpty()||s2.isEmpty()||s3.isEmpty()||s4.isEmpty()||s5.isEmpty()) { JOptionPane.showMessageDialog(this,"不允许有空!"); } else { String sql = "insert into 员工表 values(?,?,?,?,?)"; st = con.prepareStatement(sql); st.setString(1,s1); st.setString(2,s2); st.setString(3,s3); st.setString(4,s4); st.setString(5,s5); st.executeUpdate(); JOptionPane.showMessageDialog(this,"新建成功!"); textSname.setText(""); textIID2.setText(""); textSex.setText(""); textTle.setText(""); textPost.setText(""); } }catch (Exception ex) { JOptionPane.showMessageDialog(this,"新建失败,员工号已被使用"); ex.printStackTrace(); } } } public static void main(String[] args) { addStaff sta = new addStaff(); } }
12、访客管理,包括新增访客
(1)、访客管理界面:
public class Visitor extends JFrame implements ActionListener { private JTextField textsno; private JButton butSelect; private JTextField textSname; private JTextField textsno2; private JTextField textSex; private JTextField textTle; private JTextField textRoom; private JButton butChange; private JButton butDelete; private JLabel labBac; private JButton butAdd; private Connection con = null; private PreparedStatement st = null; private Container cont = null; private ImageIcon bacIco = new ImageIcon("image//Visitor.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); public Visitor() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } setTitle("访客管理"); con = connectDatabase.getConnect(); cont = this.getContentPane(); ((JPanel)cont).setOpaque(false); setSize(550,725); setResizable(false); setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); this.setLayout(null); this.setIconImage(icon); labBac = new JLabel(bacIco); textsno = new JTextField(); textSname = new JTextField(); textsno2 = new JTextField(); textSex = new JTextField(); textTle = new JTextField(); textRoom = new JTextField(); butSelect = new JButton("查询"); butChange = new JButton("确认更改"); butDelete = new JButton("删除"); butAdd = new JButton("增加访客"); butAdd.setBounds(398,68,89,19); butSelect.setBounds(202,58,140,42); textTle.setBounds(164,435,323,39); butChange.setBounds(150,618,110,30); butDelete.setBounds(302,618,98,30); textSex.setBounds(164,335,323,39); textSname.setBounds(164,135,323,39); textsno2.setBounds(164,235,323,39); textsno.setBounds(277,19,162,26); textRoom.setBounds(164,535,323,39); labBac.setBounds(0,0,550,700); butSelect.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); butChange.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); butDelete.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textRoom.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textTle.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textSex.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textsno2.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textsno.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textSname.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); butAdd.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,14)); butAdd.setForeground(Color.blue); butAdd.addActionListener(this); butDelete.addActionListener(this); butChange.addActionListener(this); butSelect.addActionListener(this); butAdd.setContentAreaFilled(false); textRoom.setOpaque(false); textsno2.setOpaque(false); textSname.setOpaque(false); textSex.setOpaque(false); textTle.setOpaque(false); cont.add(butChange); cont.add(butDelete); cont.add(butSelect); cont.add(textsno); cont.add(textsno2); cont.add(textRoom); cont.add(textSex); cont.add(textSname); cont.add(textTle); cont.add(butAdd); this.getLayeredPane().add(labBac,new Integer(Integer.MIN_VALUE)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource() == butSelect) { try { String s1 = textsno.getText(); if (s1.isEmpty()) { JOptionPane.showMessageDialog(this, "身份证号不允许为空!"); } else { String sql = "select * from 访客表 where 身份证号 = ?"; st = con.prepareStatement(sql); st.setString(1,s1); ResultSet rs = st.executeQuery(); if(rs.next()) { textSname.setText(rs.getString(1).trim()); textsno2.setText(rs.getString(2).trim()); textSex.setText(rs.getString(3).trim()); textTle.setText(rs.getString(4).trim()); textRoom.setText(rs.getString(5).trim()); }else { JOptionPane.showMessageDialog(this,"无此访客!"); textsno.setText(""); textSname.setText(""); textsno2.setText(""); textSex.setText(""); textTle.setText(""); textRoom.setText(""); } } }catch (Exception ex) { ex.printStackTrace(); } } if(e.getSource() == butChange) { try { String s0 = textsno.getText(); String s1 = textSname.getText(); String s2 = textsno2.getText(); String s3 = textSex.getText(); String s4 = textTle.getText(); String s5 = textRoom.getText(); s0 = s0.trim(); s1 = s1.trim(); s2 = s2.trim(); s3 = s3.trim(); s4 = s4.trim(); s5 = s5.trim(); if(!s0.equals(s2)) { JOptionPane.showMessageDialog(this,"身份证号不允许更改!"); } else { String sql = "update 访客表 set 姓名 = ?,性别 = ?,电话 = ?,到访房间 = ? where 身份证号 = ?"; st = con.prepareStatement(sql); st.setString(1, s1); st.setString(2, s3); st.setString(3, s4); st.setString(4, s5); st.setString(5, s0); st.executeUpdate(); JOptionPane.showMessageDialog(this, "更改成功!"); textsno.setText(""); textSname.setText(""); textsno2.setText(""); textSex.setText(""); textTle.setText(""); textRoom.setText(""); } }catch (Exception ex) { JOptionPane.showMessageDialog(this,"更改失败!"); ex.printStackTrace(); } } if(e.getSource() == butAdd) { this.setVisible(false); addVisitor adds = new addVisitor(); } if(e.getSource() == butDelete) { try { String s1 = textsno2.getText(); String s2 = textSname.getText(); s1 = s1.trim(); if(s1.isEmpty()) { JOptionPane.showMessageDialog(this,"身份证号不允许为空!"); } else { String ss = "是否删除访客:"+s2+"?"; int t = JOptionPane.showConfirmDialog(null,ss,"提示",JOptionPane.YES_NO_OPTION); if(t == JOptionPane.YES_OPTION) { String sql = "delete from 访客表 where 身份证号 = ?"; st = con.prepareStatement(sql); st.setString(1, s1); st.executeUpdate(); JOptionPane.showMessageDialog(this, "删除成功!"); textsno.setText(""); textSname.setText(""); textsno2.setText(""); textSex.setText(""); textTle.setText(""); textRoom.setText(""); }else if(t == JOptionPane.NO_OPTION) { JOptionPane.showMessageDialog(this, "删除取消!"); } } }catch (Exception ex) { JOptionPane.showMessageDialog(this, "删除失败!"); ex.printStackTrace(); } } } public static void main(String[] args) { Visitor sta = new Visitor(); } }
(2)、新增访客界面:
public class addVisitor extends JFrame implements ActionListener { private JTextField textSname; private JTextField textsno2; private JTextField textSex; private JTextField textTle; private JTextField textRoom; private JButton butSave; private JButton butBack; private JLabel labBac; private Connection con = null; private PreparedStatement st = null; private Container cont = null; private ImageIcon bacIco = new ImageIcon("image//addVisitor.jpg"); private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); public addVisitor() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } setTitle("访客管理"); con = connectDatabase.getConnect(); cont = this.getContentPane(); ((JPanel)cont).setOpaque(false); setSize(550,725); setResizable(false); setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); this.setLayout(null); this.setIconImage(icon); labBac = new JLabel(bacIco); textSname = new JTextField(); textsno2 = new JTextField(); textSex = new JTextField(); textTle = new JTextField(); textRoom = new JTextField(); butBack = new JButton("返回"); butSave = new JButton("保存"); textTle.setBounds(164,435,323,39); textSex.setBounds(164,335,323,39); textSname.setBounds(164,135,323,39); textsno2.setBounds(164,235,323,39); textRoom.setBounds(164,535,323,39); labBac.setBounds(0,0,550,700); butSave.setBounds(150,618,98,30); butBack.setBounds(302,618,98,30); butBack.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); butSave.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textRoom.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textTle.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textSex.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textsno2.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textSname.setFont(new java.awt.Font("方正幼圆",Font.PLAIN,18)); textRoom.setOpaque(false); textsno2.setOpaque(false); textSname.setOpaque(false); textSex.setOpaque(false); textTle.setOpaque(false); cont.add(butBack); cont.add(butSave); cont.add(textsno2); cont.add(textRoom); cont.add(textSex); cont.add(textSname); cont.add(textTle); butSave.addActionListener(this); butBack.addActionListener(this); this.getLayeredPane().add(labBac,new Integer(Integer.MIN_VALUE)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource() == butSave) { String s1 = textSname.getText(); String s2 = textsno2.getText(); String s3 = textSex.getText(); String s4 = textTle.getText(); String s5 = textRoom.getText(); try{ if (s1.isEmpty() || s2.isEmpty() || s3.isEmpty() || s4.isEmpty() || s5.isEmpty()) { JOptionPane.showMessageDialog(this, "不允许有空!"); } else { String sql = "insert into 访客表 values(?,?,?,?,?)"; st = con.prepareStatement(sql); st.setString(1, s1); st.setString(2, s2); st.setString(3, s3); st.setString(4, s4); st.setString(5, s5); st.executeUpdate(); JOptionPane.showMessageDialog(this, "新建成功!"); textSname.setText(""); textsno2.setText(""); textSex.setText(""); textTle.setText(""); textRoom.setText(""); } }catch(Exception ex) { JOptionPane.showMessageDialog(this, "新建失败,访客已存在"); ex.printStackTrace(); } } if(e.getSource() == null) { Visitor vis = new Visitor(); } } public static void main(String[] args) { addVisitor sta = new addVisitor(); } }
13、哈哈哈,是不是发现很多查询界面因为有表格运行不了呢,因为还有表格的类,我这里的模板可以返回JScorallPanel或者JTable(考虑周全~):14、然后是主界面呢:public class table_test extends JFrame { public JTable table=null; public JScrollPane jp; //返回表格 public JTable getTable(String[] s,int[] columnWidth,int colnum,int rowhigh){ try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); if(table==null){ table=new JTable(); DefaultTableModel model=new DefaultTableModel(s,colnum); table.setModel(model); TableColumnModel columnModel=table.getColumnModel(); int count=columnModel.getColumnCount(); for(int i=0;i<count;i++){ javax.swing.table.TableColumn column=columnModel.getColumn(i); column.setPreferredWidth(columnWidth[i]); } renderer.setOpaque(false);//render单元格的属性 //遍历表格中所有列,将其渲染器设置为renderer for(int i = 0 ; i < s.length; i ++) { table.getColumn(s[i]).setCellRenderer(renderer); } table.setRowHeight(rowhigh); table.setOpaque(false); } renderer.setHorizontalAlignment(SwingConstants.CENTER); table.setDefaultRenderer(Object.class,renderer); JTableHeader myt = table.getTableHeader(); DefaultTableCellRenderer hr = (DefaultTableCellRenderer) myt.getDefaultRenderer(); hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); myt.setOpaque(false); // myt.setUI(new WindowsTableHeaderUI()); myt.setReorderingAllowed(false); myt.setResizingAllowed(false); return table; } //返回JPanel public JScrollPane getJpanel(String[] s,int[] columnWidth,int colnum,int rowhigh){ try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } if(table==null){ table=new JTable(); DefaultTableModel model=new DefaultTableModel(s,colnum); table.setModel(model); TableColumnModel columnModel=table.getColumnModel(); int count=columnModel.getColumnCount(); for(int i=0;i<count;i++){ javax.swing.table.TableColumn column=columnModel.getColumn(i); column.setPreferredWidth(columnWidth[i]); } DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); renderer.setOpaque(false);//render单元格的属性 //遍历表格中所有列,将其渲染器设置为renderer for(int i = 0 ; i < s.length; i ++) { table.getColumn(s[i]).setCellRenderer(renderer); } table.setRowHeight(rowhigh); table.setOpaque(false); } jp =new JScrollPane(table); JTableHeader myt = table.getTableHeader(); DefaultTableCellRenderer hr = (DefaultTableCellRenderer) myt.getDefaultRenderer(); hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); myt.setOpaque(false); // myt.setUI(new WindowsTableHeaderUI()); myt.setReorderingAllowed(false); myt.setResizingAllowed(false); jp.add(myt); jp.setOpaque(false); jp.getViewport().setOpaque(false); return jp; } }
(1)、主函数:
public class Main { public static void main(String[] args) { MainFrame frame = new MainFrame();//主界面 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = frame.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); frame.setVisible(true); } }
(2)主界面:
public class MainFrame extends JFrame implements ActionListener { private JPanel contentPane;//主面板 private JMenuBar jMenuBar1 ; private JMenu jMenuFile ; private JMenuItem jMenuFileExit ; private JMenu jMenu1; private JMenuItem jMenuItem1; private JMenu jMenu2 ; //上面创建菜单栏 private JLabel jLabel ; private JLabel jLabe2 ; private Image icon = Toolkit.getDefaultToolkit().getImage("image//logo.jpg"); private ImageIcon img1 = new ImageIcon("image//mainframe.jpg"); private JLabel labImg; public MainFrame() { try{ UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e) { System.out.println(e.toString()); } contentPane = (JPanel) getContentPane(); contentPane.setLayout(null); contentPane.setBackground(Color.white); setSize(new Dimension(500,430));//框架大小 setTitle("宾馆管理系统");//框架标题 setResizable(false); super.setBackground(Color.white); super.setIconImage(icon); jMenuBar1 = new JMenuBar(); jMenuFile = new JMenu("文件"); jMenuFileExit = new JMenuItem("退出"); jMenu1 = new JMenu("宾馆管理"); jMenuItem1 = new JMenuItem("管理员登陆"); jMenu2 = new JMenu("住房查询"); //上面创建菜单栏 jLabel = new JLabel("宾馆管理系统"); jLabe2 = new JLabel("2017年12月7日"); labImg = new JLabel(img1); labImg.setBounds(0,0,500,400); contentPane.setOpaque(false); super.getLayeredPane().add(labImg,new Integer(Integer.MIN_VALUE)); try{ setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); Init(); } catch (Exception e1){ e1.printStackTrace(); } } private void Init() throws Exception { //创建内容面板和其布局 //添加监听器 jMenuItem1.addActionListener(this); jMenuFileExit.addActionListener(this); setJMenuBar(jMenuBar1);//添加菜单条 //添加菜单组件到菜单条 jMenuBar1.add(jMenuFile); jMenuBar1.add(jMenu1); jMenuBar1.add(jMenuFileExit); //添加选项到菜单组件 jMenuFile.add(jMenuFileExit); jMenu1.add(jMenuItem1); //添加标签到内容面板 contentPane.add(jLabel); contentPane.add(jLabe2); //设置标签大小和字体 jLabel.setFont(new java.awt.Font("宋体",Font.BOLD,25)); jLabel.setBounds(new Rectangle(140,135,275,55)); jLabe2.setFont(new java.awt.Font("宋体",Font.BOLD,20)); jLabe2.setBounds(new Rectangle(160,190,200,35)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕尺寸 Dimension frameSize = this.getSize();//获取主界面尺寸 if(frameSize.height>screenSize.height)frameSize.height = screenSize.height; if(frameSize.width>screenSize.width)frameSize.width = screenSize.width;//主界面居中 this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); } public void actionPerformed(ActionEvent actionEvent) { if(actionEvent.getSource() == jMenuFileExit)//点击的菜单下的“退出”菜单项 { System.exit(0); } if(actionEvent.getSource() == jMenuItem1) { login ff = new login(); this.setVisible(false); } } }
15、最后放点我这里运行的图,图都是我的美工做的,在这里灰常的感概,有个美工真的是开发快又方便
我这里图片显示的都是调成200*200的,所以会有点不协调,实际运行出来的比例很好的。
这就是全部的代码啦,完美运行,毫无压力,数据库中的表格就要靠自己创建了~~。