本项目为前几天做的一个项目,Java swing项目,在工作环境中基本使用不到,但是很多学校把这个当做编程入门的项目来做,故分享出本项目供初学者参考。
一、效果演示
主要功能:
1.会员用户功能分析
(1)预定管理。会员可以对房间进行预定,可查询房间类型,若有空闲房间,则可接受预定,需要登记姓名、性别、身份证号、联系方式、入住天数;否则,则不接受预定。
(2)切换账号。会员可以进行账号的切换。
(3)安全退出。会员可以退出登入。
2.管理员用户功能分析
(1)入住管理。每当有客人需要入住时进行办理程序。工作人员需要记录客人的姓名、性别、身份证号、联系方式、入住天数等。若办理入住的房间不为空则不允许办理入住。
(2)顾客信息查询。工作人员可以对已入住的顾客进行信息查询。需要支持精准查询,如通过身份证号、通过联系方式查询。
(3)退房管理。当客户退房时进行退房办理。工作人员需要记录入住人的身份证号、入住房间信息。若退房的房间为空,则不允许办理;否则,办理退房并且得到收款金额。
(4)预定管理。 管理员可以对预定房间信息进行查询,可查询预定顾客的身份证号、联系方式等,若有预定则允许预定入住;否则,不允许预定入住。
(5)房间信息管理。 管理员可以更改房间信息,如房间类型、价格、增加房间、删除房间等。
(6)切换账号。管理员可以进行账号的切换。
(7)安全退出。管理员可以退出登入。
-
- 登录界面

-
- 注册界面

-
- 管理员界面

3.1入住管理

3.2退房管理

3.3房间管理


3.4顾客管理

3.5预定管理

4会员界面

部分代码
import java.awt.EventQueue;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import com.yym.Util.DbUtil;
import com.yym.dao.RoomDao;
import com.yym.model.Room;
import javax.swing.JMenuBar;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.JMenu;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import java.awt.Font;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.DefaultComboBoxModel;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JSplitPane;
import javax.swing.JTextField;
import javax.swing.JDesktopPane;
import javax.swing.JToolBar;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.sql.Connection;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class AdminMainFrame2 extends JFrame {
private JPanel contentPane;
private JDesktopPane desktopPane;
private JSplitPane splitPane;
private RoomDao roomDao=new RoomDao();
private DbUtil dbUtil=new DbUtil();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AdminMainFrame2 frame = new AdminMainFrame2();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public AdminMainFrame2() {
setTitle("酒店管理系统");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 1242, 827);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));
JMenu mnNewMenu = new JMenu("设置");
mnNewMenu.setFont(new Font("黑体", Font.PLAIN, 21));
mnNewMenu.setIcon(new ImageIcon(AdminMainFrame2.class.getResource("/com/yym/image/3.1 设置.png")));
menuBar.add(mnNewMenu);
JMenuItem mntmNewMenuItem = new JMenuItem("切 换 账 号");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int n=JOptionPane.showConfirmDialog(null, "是否切换账号?");
if(n==0) {
dispose();
new LoginFrame().setVisible(true);
}
}
});
mntmNewMenuItem.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 16));
mntmNewMenuItem.setIcon(new ImageIcon(AdminMainFrame2.class.getResource("/com/yym/image/切换账号.png")));
mnNewMenu.add(mntmNewMenuItem);
JMenuItem mntmNewMenuItem_1 = new JMenuItem("退 出 系 统");
mntmNewMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int n=JOptionPane.showConfirmDialog(null, "是否退出系统?");
if(n==0) {
dispose();
}
}
});
mntmNewMenuItem_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
mntmNewMenuItem_1.setIcon(new ImageIcon(AdminMainFrame2.class.getResource("/com/yym/image/退出,出.png")));
mnNewMenu.add(mntmNewMenuItem_1);
desktopPane = new JDesktopPane();
contentPane.add(desktopPane, BorderLayout.CENTER);
JToolBar toolBar = new JToolBar();
getContentPane().addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
int Width=e.getComponent().getWidth();
toolBar.setBounds(0, 0, Width, 46);
}
});
toolBar.setFloatable(false);
// toolBar.setBounds(0, 0, 1486, 46);
desktopPane.add(toolBar);
JButton btnNewButton = new JButton("入住管理");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
IntoRoomActionPerformed( e);
}
});
btnNewButton.setFont(new Font("黑体", Font.PLAIN, 26));
toolBar.add(btnNewButton);
toolBar.addSeparator(new Dimension(20, 0));// 添加指定大小的分隔符
JButton btnNewButton1 = new JButton("退房管理");
btnNewButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
OutRoomActionPerformed( e);
}
});
btnNewButton1.setFont(new Font("黑体", Font.PLAIN, 26));
toolBar.add(btnNewButton1);
toolBar.addSeparator(new Dimension(20, 0));
JButton btnNewButton3 = new JButton("顾客管理");
btnNewButton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CustomManagerActionPerformed( e);
}
});
btnNewButton3.setFont(new Font("黑体", Font.PLAIN, 26));
toolBar.add(btnNewButton3);
toolBar.addSeparator(new Dimension(20, 0));
JButton btnNewButton4 = new JButton("房间管理");
btnNewButton4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
RoomManageActionPerformed( e);
}
});
btnNewButton4.setFont(new Font("黑体", Font.PLAIN, 26));
toolBar.add(btnNewButton4);
toolBar.addSeparator(new Dimension(20, 0));
JButton btnNewButton5 = new JButton("预定管理");
btnNewButton5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
BookingActionPerformed(e);
}
});
btnNewButton5.setFont(new Font("黑体", Font.PLAIN, 26));
toolBar.add(btnNewButton5);
toolBar.addSeparator(new Dimension(20, 0));
splitPane = new JSplitPane();
//splitPane.setBounds(0, 56, 1208, 676);
getContentPane().addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
int Width=e.getComponent().getWidth();
int Height=e.getComponent().getHeight();
splitPane.setBounds(0, 46, Width,Height );
}
});
;
splitPane.setDividerLocation(0);
splitPane.setEnabled(false);
splitPane.setDividerSize(7);
desktopPane.add(splitPane);
}
private void BookingActionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
splitPane.setDividerLocation(0);
splitPane.setEnabled(false);
BookingManagerFrame booking=new BookingManagerFrame();
booking.setVisible(true);
splitPane.setRightComponent(booking);
}
private void CustomManagerActionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
splitPane.setDividerLocation(0);
splitPane.setEnabled(false);
CustomManagerFrame customManager=new CustomManagerFrame();
customManager.setVisible(true);
splitPane.setRightComponent(customManager);
}
private void OutRoomActionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
splitPane.setDividerLocation(0);
splitPane.setEnabled(false);
OutRoomJPanel outroom=new OutRoomJPanel();
splitPane.setRightComponent(outroom);
}
private void IntoRoomActionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
splitPane.setDividerLocation(400);
splitPane.setEnabled(false);
RoomIntoFrame roominto=new RoomIntoFrame();
CustomJPanel panel=roominto.customJpanel;
splitPane.setLeftComponent(panel);
roominto.setVisible(true);
splitPane.setRightComponent(roominto);
}
private void RoomManageActionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JPanel panel = new JPanel();
splitPane.setLeftComponent(panel);
JPanel panel_1 = new JPanel();
splitPane.setRightComponent(panel_1);
JButton btnNewButton_1 = new JButton("添加房间");
btnNewButton_1.setFont(new Font("宋体", Font.PLAIN, 25));
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
RoomAddFrame roomadd=new RoomAddFrame();
roomadd.setVisible(true);
splitPane.setRightComponent(roomadd);
}
});
JButton btnNewButton_1_1 = new JButton("修改房间");
btnNewButton_1_1.setFont(new Font("宋体", Font.PLAIN, 25));
GroupLayout gl_panel = new GroupLayout(panel);
gl_panel.setHorizontalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addComponent(btnNewButton_1)
.addComponent(btnNewButton_1_1)
);
gl_panel.setVerticalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup()
.addGap(5)
.addComponent(btnNewButton_1)
.addGap(5)
.addComponent(btnNewButton_1_1))
);
panel.setLayout(gl_panel);
btnNewButton_1_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
RoomReviseFrame room=new RoomReviseFrame();
room.setVisible(true);
splitPane.setRightComponent(room);
}
});
}
}
其他代码
有需要全部代码+数据库的可以私信作者,有偿哦~