eclipose+文件做一个简单的图书管理系统——登录界面

图书管理系统

  1. 第一章

登录界面

代码

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
			
		}

}

登录界面图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值