图书管理系统
- 第一章
登录界面
代码
package frame;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JRootPane;
import javax.swing.JTextField;
public class LoginFrame implements ActionListener {
public static Object userName;
//窗体
JFrame frame =new JFrame();
//标签
JLabel labUserName =new JLabel("用户名",JLabel.CENTER);
JLabel labPassword =new JLabel("密码",JLabel.CENTER);
//文本框
JTextField tfUserName =new JTextField("输入用户名",10);
//密码框
JPasswordField pfPassword=new JPasswordField(10) ;
//按钮
//单选按钮 JRadioButton
JRadioButton rbtnManager = new JRadioButton("管理员");
JRadioButton rbtnReader = new JRadioButton("读者");
JButton btnLogin=new JButton("登录");
JButton btnRegister =new JButton("注册");
//容器
Container cp=frame.getContentPane();
LoginFrame()
{
cp.setLayout(new GridLayout(5,2,2,10));//5行2列 行间距列间距
//按照顺序加载组件
//设置字体对象
Font f=new Font("隶书",Font.BOLD+Font.ITALIC,22);
labUserName.setFont(f);
tfUserName.setFont(f);
labPassword.setFont(f);
rbtnManager.setFont(f);
rbtnReader.setFont(f);
btnLogin.setFont(f);
btnRegister.setFont(f);
cp.add(labUserName);
cp.add(tfUserName);
cp.add(labPassword);
cp.add(pfPassword);
cp.add(rbtnManager);
cp.add(rbtnReader);
cp.add(btnLogin);
cp.add(btnRegister);
//设置单选按钮的功能
ButtonGroup btnGroup = new ButtonGroup();
btnGroup.add(rbtnManager);
btnGroup.add(rbtnReader);
rbtnReader.setSelected(true);
btnLogin.addActionListener(new MyListener());
btnRegister.addActionListener(new MyListener());
tfUserName.addMouseListener(new MyMouseListener());
//设置窗体位置大小和名字
frame.setTitle("登录界面");//登录界面
//采用指定的窗口装饰风格
frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE);
//设置窗体位置
frame.setLocationRelativeTo(null);
//设置窗体大小
frame.setSize(400,300);
//设置窗体可见
frame.setVisible(true);
frame.setResizable(true);
//设置窗体关闭方式
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//定义内部类作为监听器
class MyListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource()==btnRegister)
{
frame.dispose();
new RegisterFrame();
}
if(e.getActionCommand()=="登录")
{
if(rbtnManager.isSelected())
{
Mangerlogin();
}else if(rbtnReader.isSelected()) //读者在登录系统
{
Readerlogin();
}
}
}
}
//定义一个内部类鼠标监听
class MyMouseListener extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
if ((e.getSource()==tfUserName)&&(tfUserName.getText().equals("输入用户名")))
tfUserName.setText("");
}
}
public void Readerlogin()
{
//利用文件存储信息
//从文件中读用户信息,存在info数组中,数组中每一个元素为一个用户的信息
String info[] = new FileReader().FileRead();//info数组中每一行代表一个用户的信息
String detail[];//detail数组存放每个用户的用户名、密码、电话号码、出生日期
int i=0;// i变量循环判断
boolean userFlag=false, passFlag=false;//userFlag、passwordFlag分别表示用户名是否找到,以及用户名对应密码是否正确
for (i=0;i<info.length;i++)
{
detail = info[i].split(",");//通过逗号将各个信息分割放到数组中,
if (detail[0].equals(tfUserName.getText()))//detail[0]表示用户名,如果和输入的用户名相同,则修改userFlag的值;接着判断密码是否正确,密码正确则修改passwordFlag的值,否则不修改,说明密码不正确,退出循环
{
userFlag = true;
if (detail[1].equals(String.valueOf(pfPassword.getPassword())))
passFlag = true;
break;
}
}
if (i==info.length)
{// 如果循环正常结束,说明没有找到已经存在的用户名
JOptionPane.showMessageDialog(null,"账号不存在","提示消息",JOptionPane.WARNING_MESSAGE);
}
else
{
if (!passFlag)
JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请重新输入","提示消息",JOptionPane.ERROR_MESSAGE);
}
String passwordAgain ="";
boolean passwordAgainFlag = false;
if (userFlag&&passFlag) //只有用户名和密码都正确时,才会提示重新输入密码
{
while (!passwordAgainFlag){
passwordAgain = JOptionPane.showInputDialog("请再次输入密码");//输入对话框中再次输入密码
if (passwordAgain.equals(String.valueOf(pfPassword.getPassword())))
{
passwordAgainFlag = true;//两次密码相同时,标识位修改
}
}//再次输入密码,当两次输入密码相同时循环才会结束
userName = tfUserName.getText();//提示登录成功
JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE);
frame.dispose();
}
}
public void Mangerlogin()
{
String name = tfUserName.getText();
String password = String.valueOf(pfPassword.getPassword());
if((name.equals("管理员1"))&&(password.equals("11500"))||(name.equals("管理员2"))&&(password.equals("666666")))
{
// System.out.println("登录成功");
JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE);
frame.dispose();
new OperatorFrame();
}
else
{
JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请重新输入","提示消息",JOptionPane.ERROR_MESSAGE);
}
}
public static void main (String args[])
{
new LoginFrame();//程序的运行从登录界面开始
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}