📄 logininpage.java
字号:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ContainerListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileNotFoundException;
import java.sql.SQLException;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
public class LoginInPage extends InitPage// 继承InitPage类
{
static LoginInPage hotel;//定义一个LoginInPage类型的 静态对象hotel
static DBAccess db;//定义一个DBAccess类型的 静态对象db
LoginInPage()// 构造方法的实现
{
super();//调用父类的构造方法
db=new DBAccess();//创建 一个DBAccess对象db,建立与数据库的连接
}
public static void main(String[] args) //程序入口
{
hotel=new LoginInPage();//给对象分配空间
hotel.setEnabled(false);
showSplash();//调用成员方法,实现前台界面
LoginDialog();// 调用登陆界面的成员方法
hotel.setVisible(true); //可见
hotel.bar1.bt0.addActionListener(new RoomStateClick(hotel));//实现对空房状态按钮的监听
hotel.bar1.bt1.addActionListener((ActionListener)new RegisterHotelClick());//实现对顾客接待按钮的监听
hotel.bar1.bt2.addActionListener(new OrderChangeRegisterClick());//实现预定转入住按钮的监听
hotel.bar1.bt3.addActionListener(new FindAvalidRoomClick(hotel));//实现对空房查询按钮的监听
hotel.bar1.bt4.addActionListener(new CheckOutClick());//实现对客人结账按钮的监听
hotel.bar2.m13.addActionListener(new ActionListener(){//返回登录框
public void actionPerformed(ActionEvent arg0) {
try{LoginDialog();// 调用登陆界面的成员方法
}
catch (HeadlessException e) {
e.printStackTrace();
}
}
});
hotel.bar2.m14.addActionListener(new ActionListener(){//退出系统
public void actionPerformed(ActionEvent arg0) {
try{hotel.dispose();// 调用登陆界面的成员方法
}
catch (HeadlessException e) {
e.printStackTrace();
}
}
});
}
public static void showSplash()//前台界面的实现
{
String img = "ICON/tp1.jpg";
JDialog dlg = new JDialog();//创建一个对话框对象
dlg.getContentPane().add(new JLabel(new ImageIcon(img))); //返回此对话框的 contentPane 对象
dlg.setUndecorated(true); //没有边界的装饰
dlg.setAlwaysOnTop(true); // 设置为顶层
dlg.pack();//调整此窗口的大小,以适合其子组件的首选大小和布局。
java.awt.Toolkit toolkit = hotel.getToolkit().getDefaultToolkit(); //获得屏幕的有关参数
Dimension screen = toolkit.getScreenSize();
dlg.setLocation( //位置处于屏幕正中间
(screen.width - dlg.getWidth()) / 2,
(screen.height - dlg.getHeight()) / 2);
dlg.setVisible(true); //可见
try{
Thread.sleep(5000);//停留时间为5秒,5秒后自动消失,进入就绪状态
}catch (Exception e){e.printStackTrace();}
dlg.dispose(); //关闭对话框
}
/*******************************系统登陆方法的实现*************************************************************/
public static void LoginDialog()//系统登陆方法的实现
{
final JFrame fm;
JLabel user;
final JComboBox usertype;
JLabel pwd;
final JPasswordField password;
JButton ok,cancel;
fm = new JFrame("登陆页面");
fm.setSize(300, 180);
fm.setLayout(null);
fm.setAlwaysOnTop(true);//至顶端
fm.setResizable(false);
user=new JLabel(new ImageIcon("ICON/USER.gif"));//图标
user.setBounds(40, 15, 56, 32);
String[] data = {"管理员", "收银员"};
usertype=new JComboBox(data);
usertype.setBounds(90, 17, 120, 25);
fm.add(user);fm.add(usertype);
pwd=new JLabel(new ImageIcon("ICON/PASS.gif"));//图标
pwd.setBounds(40, 40, 56, 47);
password = new JPasswordField(10);
password.setBounds(90, 50, 120, 20);
//password.setEchoChar('*');
fm.add(pwd);
fm.add(password);
ok=new JButton("确定");
cancel=new JButton("取消");
ok.setBounds(50, 90, 70, 30);
cancel.setBounds(155, 90, 70, 30);
fm.add(cancel);
fm.add(ok);
fm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(1);
}
});
cancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
try {
if(usertype.getSelectedIndex()==0 && password.getText().equalsIgnoreCase(db.getValue("select LoginPassword from Admin where LoginName='管理员'","LoginPassword").trim().toString()))
{
fm.setVisible(false);
hotel.setEnabled(true);
hotel.dispose();
hotel.setVisible(true);
hotel.bar2.m11.setEnabled(true);
hotel.bar2.m12.setEnabled(true);
hotel.bar2.m21.setEnabled(true);
hotel.bar2.m22.setEnabled(true);
hotel.bar2.m31.setEnabled(true);
hotel.bar2.m32.setEnabled(true);
hotel.bar2.m33.setEnabled(true);
hotel.bar2.m41.setEnabled(true);
hotel.bar2.m51.setEnabled(true);
hotel.bar2.m61.setEnabled(true);
}
else if(usertype.getSelectedIndex()==1 && password.getText().equalsIgnoreCase(db.getValue("select LoginPassword from Admin where LoginName='收银员'","LoginPassword").trim().toString()))
{
fm.setVisible(false);
hotel.setEnabled(true);
hotel.dispose();
hotel.setVisible(true);
hotel.bar2.m11.setEnabled(false);
hotel.bar2.m12.setEnabled(false);
hotel.bar2.m21.setEnabled(false);
hotel.bar2.m22.setEnabled(false);
hotel.bar2.m31.setEnabled(false);
hotel.bar2.m32.setEnabled(false);
hotel.bar2.m33.setEnabled(false);
hotel.bar2.m41.setEnabled(false);
hotel.bar2.m51.setEnabled(false);
hotel.bar2.m61.setEnabled(false);
}
else
JOptionPane.showMessageDialog(fm, "密码错误,重新输入");
} catch (HeadlessException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
});
java.awt.Toolkit toolkit =hotel. getToolkit().getDefaultToolkit();
Dimension screen = toolkit.getScreenSize();
fm.setLocation((screen.width - fm.getWidth()) / 2,
(screen.height - fm.getHeight()) / 2);
fm.show();
fm.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -