📄 zicanguanli.java
字号:
//如何实现窗口的关闭
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import javax.imageio.*;
import java.io.*;
import javax.swing.JLabel;
import java.awt.Window;
import java.sql.*;
import javax.swing.event.*;
import java.awt.MediaTracker;
import javax.swing.border.*;
import javax.swing.JOptionPane;
public class zicanguanli
{
public static void main(String [] args)
{
loadingFrame loadF=new loadingFrame();
loadF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
loadF.setVisible(true);
}
}
class loadingFrame extends JFrame
{
public loadingFrame()
{
setBackground(new Color(204,255,255));
Toolkit kit =Toolkit.getDefaultToolkit();
Dimension screenSize=kit.getScreenSize();
int screenWidth=screenSize.width;
int screenHeight=screenSize.height;
setLocation((screenWidth-DEFA_W)/2,(screenHeight-DEFA_H)/2); //设置窗口位置,位于屏幕中间
setTitle("酒店管理——用户登录");
setSize(DEFA_W,DEFA_H);
setResizable(false); //不允许用户改变窗口大小
loadPanel pane=new loadPanel(); //构造一个登陆面板
add(pane); //添加登陆面板到顶层框架
}
private final int DEFA_W=320; //设置框架的宽度
private final int DEFA_H=260; //设置框架的高度
}
class loadPanel extends JPanel
{
public loadPanel()
{
setBackground(new Color(204,255,255)); //设置背景色
setLayout(null); //设置布局管理器
Ltop to=new Ltop();
South so=new South();
Center ce=new Center();
add(to);
add(so);
add(ce);
to.setBounds(0,0,317,49);
so.setBounds(0,185,317,50);
ce.setBounds(0,60,317,120);
}
//添加图像代码开始
private class Ltop extends JPanel
{
public Ltop()
{
setLayout(null);
Toolkit kit =Toolkit.getDefaultToolkit();
top=kit.getImage("loading.GIF");
MediaTracker tracker=new MediaTracker(this);
tracker.addImage(top,0);
try
{
top=ImageIO.read(new File("loading.GIF"));
}
catch(IOException e)
{
e.printStackTrace();
}
}
public void paintComponent(Graphics g)
{
g.drawImage(top,0,0,317,49,null);
}
private Image top;
}
//添加图像代码结束
public void getDateBase()
{
int i=0;
NAME=(String)textName.getText().trim();
PSWD=pswd.getPassword();
while(i<PSWD.length)
{
PASSWORD=PASSWORD+PSWD[i];
i=i+1;
}
PASSWORD=PASSWORD.substring(1);
}
public void connDBQ() throws SQLException
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
String URL="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=mdb.mdb";
conn=DriverManager.getConnection(URL);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery("select * from user where name like '"+NAME+"'");
}
//添加登录 AND 取消按钮代码开始
private class South extends JPanel
{
public South()
{
setLayout(null);
setBackground(new Color(204,255,255));
JButton Button1=new JButton("登录");
JButton Button2=new JButton("取消");
add(Button1);
add(Button2);
Button1.setBounds(120,5,80,30); //设置按钮的大小和位置
Button2.setBounds(220,5,80,30); //设置按钮的大小和位置
quxiao bottaction=new quxiao();
dengLu deng=new dengLu();
Button2.addActionListener(bottaction); //添加按钮“取消”的事件监视器
Button1.addActionListener(deng); //添加按钮“登录”的事件监视器
}
private class quxiao implements ActionListener //“取消”的事件监视器
{
public void actionPerformed(ActionEvent Event)
{
System.exit(0); //退出程序
}
}
private class dengLu implements ActionListener //“登录”的事件监视器
{
public void actionPerformed(ActionEvent Event)
{
String pswdYanZheng=null;
getDateBase();
try
{
connDBQ();
}
catch(SQLException e){}
if(NAME.length()==0)
{
JOptionPane.showMessageDialog(null, "请输入用户名", "出错了", JOptionPane.ERROR_MESSAGE);
PASSWORD="#";
}
else if(PASSWORD.length()==0)
{
JOptionPane.showMessageDialog(null, "请输入密码", "出错了", JOptionPane.ERROR_MESSAGE);
PASSWORD="#";
}
else
{
try
{
if(rs.next())
{
rs.beforeFirst();
while(rs.next())
{
pswdYanZheng=rs.getString("password");
if(count>0&&bool)
{
if(pswdYanZheng.equals(PASSWORD))
{
// super.setVisible(true);
PASSWORD="#";
mainFrame main=new mainFrame(NAME); //打开主窗口开始
main.setVisible(true);
main.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
else
{
PASSWORD="#";
JOptionPane.showMessageDialog(null, "密码错误,您还有"+count+"次机会", "出错了", JOptionPane.ERROR_MESSAGE);
count=count-1;
}
}
else
{
JOptionPane.showMessageDialog(null, "为了保护用户信息安全,请两分钟后重试", "出错了", JOptionPane.ERROR_MESSAGE);
bool=false;
timeCount tc=new timeCount();
Timer t=new Timer(120000,tc);
t.start();
}
}
}
else
JOptionPane.showMessageDialog(null, "没有此用户名,请检查输入是否正确", "出错了", JOptionPane.ERROR_MESSAGE);
PASSWORD="#";
}
catch(SQLException e){}
}
}
private class timeCount implements ActionListener
{
public void actionPerformed(ActionEvent Event)
{
bool=true;
count=2;
}
}
private int count=2;
private boolean bool=true;
}
}
//添加登录 AND 取消按钮代码结束
//添加中间信息输入部分代码开始
private class Center extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
g2.setPaint(new Color(0,0,0)); //设置线的颜色
Rectangle2D rect=new Rectangle.Double(10,8,295,111);//构造一个矩形
g2.draw(rect); //添加矩形到面板
setBackground(new Color(204,255,255));//设置背景颜色
}
public Center()
{
setLayout(null);
setBackground(new Color(204,255,255));
name=new Label("用户名:");
passWord=new Label("密 码:");
textName=new JTextField(12);
pswd=new JPasswordField(null,12);
zhuce=new JButton("注册");
add(name);
add(passWord);
add(textName);
add(pswd);
add(zhuce);
name.setBounds(40,30,50,20);
passWord.setBounds(40,70,50,20);
textName.setBounds(90,27,130,25);
pswd.setBounds(90,67,130,25);
zhuce.setBounds(235,20,60,30);
zhuCeDengLu ZCDL=new zhuCeDengLu();
zhuce.addActionListener(ZCDL);
}
private class zhuCeDengLu implements ActionListener //“注册”的事件监视器
{
public void actionPerformed(ActionEvent Event)
{
GL=new guanLi();
GL.setVisible(true);
GL.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
}
//添加中间信息输入部分代码结束
private Label name; //定义一个标签显示“用户名”
private Label passWord; //定义一个标签显示“密码”
private JTextField textName; //定义一个文本框用来接收用户名
private JPasswordField pswd; //定义一个文本框用来接收密码
private JButton zhuce; //定义一个按钮用来注册新用户
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
public guanLi GL;
private String NAME=null;
private String PASSWORD="#";
private char[] PSWD;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -