package guoyu;
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.net.PasswordAuthentication;
class LoginListener implements ActionListener{
	private JComboBox<Object>jco;
	private JPasswordField jpa;
	private JFrame jf;
	public LoginListener(JComboBox<Object>jco,JPasswordField jpa,JFrame jf) {
		super();
		this.jco = jco;
		this.jpa = jpa;
		this.jf = jf;
	}
	boolean passwd(String name, String pwd) {
		String t = " " + name + " " + pwd + " ";
		BufferedReader br = null;
		try {
			br = new BufferedReader(new FileReader("D:\\user.txt"));
			// 临时字符串
			String s = "";
			while ((s = br.readLine()) != null) {
				if (t.equals(s)) {
					return true;
				}
			}
			return false;
		} catch (Exception e2) {
			e2.printStackTrace();
		} finally {
			try {
				br.close();
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}
		return false;
	}
	public void actionPerformed(ActionEvent e) {
		String name = (String) jco.getSelectedItem();
		String pwd = new String(jpa.getPassword());
		if(passwd(name, pwd)){
			jf.dispose();
			JFrame f=new JFrame("聊天窗口");
			f.setLayout(new BorderLayout());
			f.setSize(400, 300);
			f.setLocation(300, 200);
			f.setVisible(true);
			f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			JTextArea showArea =new JTextArea(12,34);
			JScrollPane scrollPane=new JScrollPane(showArea);
			showArea.setEditable(false);
			JTextField inputField=new JTextField(20);
			JButton btn=new JButton("发送");
			int t=0;
			btn.addActionListener(a ->{//聊天
			String content=inputField.getText();
			if(content!=null&&!content.trim().equals("")){
				showArea.append("发送的信息:  "+content+"\n");
			}
			else {
				showArea.append("聊天信息不能为空!"+"\n");
			}
			inputField.setText("");
		});
		JPanel panel=new JPanel();
		JLabel label=new JLabel("聊天信息");
		panel.add(label);
		panel.add(inputField);
		panel.add(btn);
		f.add(scrollPane,BorderLayout.PAGE_START);
		f.add(panel,BorderLayout.PAGE_END);
		}
		else {
			JOptionPane.showMessageDialog(null, "你输入的账户名或密码不正确,请重新输入!");
		}
	}
}
public class RTFIL{
private static JFrame jf=new JFrame();
	public static void initLogin() {
		  jf.setSize(426, 300);
		  jf.setLocation(497, 242);
		  jf.setUndecorated(true);
		  jf.setResizable(false);
		  BorderLayout border_layout=new BorderLayout();
	      jf.setLayout(border_layout);
		  JPanel panel_north=createpanel.CreatNorthPanel(jf); 
		  jf.add(panel_north,border_layout.PAGE_START); 
		  JPanel panel_center=createpanel.CreateCenterPanel(jf);
		  jf.add(panel_center, border_layout.CENTER);
		  JPanel panel_west=createpanel.CreateWestPanel();
		  jf.add(panel_west, border_layout.LINE_START);
		  JPanel panel_east=createpanel.CrateEastPanel();
		  jf.add(panel_east, border_layout.LINE_END);
		  JPanel panel_south=createpanel.CreateSouthPanel();
		  jf.add(panel_south, border_layout.PAGE_END);
          jf.setVisible(true);
          jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
	}
	public static void main(String[]args) {
		SwingUtilities.invokeLater(RTFIL::initLogin);
	}
}
class createpanel{
	private static LoginListener ll = null;
	public static JPanel CreatNorthPanel(JFrame jf) {
    	// 1、创建一个JPanel顶部面板
        JPanel panel=new JPanel();  
        // 取消面板内默认布局
        panel.setLayout(null);     
        // 设置顶部面板尺寸 
        panel.setPreferredSize(new Dimension(0, 140));  
        // 1.1、向顶部面板添加背景图片
        ImageIcon image=new ImageIcon("images/back.jpg");  
        JLabel background=new JLabel(image);  
        // 设置背景图片的位置及尺寸
        background.setBounds(0,0,426,image.getIconHeight());     
        panel.add(background);  
        // 1.2、在顶部JPanel面板右上角添加一个退出按钮
		JButton out = new JButton(new ImageIcon("images/close_normal.jpg"));
		out.addActionListener(event -> jf.dispose());
		out.setBounds(403,0,26,26);
		// 设置鼠标移动到退出按钮时更改图片
		out.setRolloverIcon(new ImageIcon("images/close_hover.jpg"));
		// 取消按钮边框效果
		out.setBorderPainted(false);
		panel.add(out);
		// 为退出按钮注册***,用来关闭窗口
		out.addActionListener(event -> jf.dispose());
        return panel;  
	}
		  public static JPanel CreateCenterPanel(JFrame jf) {
				JPanel panel = new JPanel();
				panel.setLayout(null);
				String str [] = {"123456789","666666","88888888"};
				JComboBox<Object>jcoCenter = new JComboBox<Object>(str);
				panel.add(jcoCenter);
				jcoCenter.setEditable(true);
				jcoCenter.setBounds(0,15,175,30);
				jcoCenter.setFont(new Font("Calibri",0,13));
				JPasswordField jpaCenter = new JPasswordField();
				jpaCenter.setLayout(new FlowLayout(FlowLayout.RIGHT,0,0));
				jpaCenter.setBounds(0,44,175,30);
				jpaCenter.setPreferredSize(new Dimension(185,25));
				panel.add(jpaCenter);
				ImageIcon image = new ImageIcon("images/keyboard.jpg");
				JButton jbu = new JButton(image);
				jbu.setPreferredSize(new Dimension(22,20));
				jbu.setBorderPainted(false);
				jpaCenter.add(jbu);
				JCheckBox jch1 = new JCheckBox("记住密码");
				jch1.setFocusPainted(false);
				jch1.setFont(new Font("宋体",0,13));
				jch1.setBounds(0,85,80,20);
				panel.add(jch1);
				JCheckBox jch2 = new JCheckBox("自动登录");
				jch2.setFocusPainted(false);
				jch2.setFont(new Font("宋体",0,12));
				jch2.setBounds(100,85,80,20);
				panel.add(jch2);
				ll = new LoginListener(jcoCenter,jpaCenter,jf);
				return panel;
			}
		  public static JPanel CreateWestPanel() {
				JPanel panel=new JPanel();
				panel.setLayout(null);
				panel.setPreferredSize(new Dimension(130,0));
				ImageIcon image=new ImageIcon("images/qq.jpg");
				JLabel background=new JLabel(image);
				background.setBounds(0,0,120,110);
				panel.add(background);
				return panel;
		  }
		  public static JPanel CrateEastPanel() {
			  JPanel panel=new JPanel();
			  panel. setLayout(null);
			  panel. setPreferredSize(new Dimension(100, 0));
			  JLabel regeist=new JLabel("注册账号");
			  regeist. setForeground (new Color(100,149, 238));
			  regeist. setBounds(0, 13, 60, 30);
			  regeist.setFont(new Font("宋体",0,12));
			  JLabel regetpwd=new JLabel("找回密码");
			  regetpwd.setForeground (new Color(100,149,238));
			  regetpwd.setBounds (0,43,60,30);
			  regetpwd.setFont(new Font("宋体",0,12));
			  panel.add(regetpwd);
			  panel.add(regeist);
			  return panel;
			 	}
		  public static JPanel CreateSouthPanel() {
				JPanel panel=new JPanel();
				panel.setPreferredSize(new Dimension(0,51));
				panel.setLayout(null);
				JButton jble=new JButton(new ImageIcon("images/single_normal.jpg"));
				jble.setPreferredSize(new Dimension(40,40));
				jble.setFocusPainted(false);
				jble.setRolloverIcon(new ImageIcon("images/single_down.jpg"));
				jble.setBorderPainted(false);
				jble.setContentAreaFilled(false);
				jble.setBounds(0, 10, 40, 40);
				jble.setToolTipText("多账号登录");
				ImageIcon image=new ImageIcon("images/login_normal.jpg");
			    JButton jb=new JButton("登            录",image);
			    jb.setFont(new Font("宋体",0,13));
			    jb.setBounds(130,0,175,40);
			    jb.setHorizontalTextPosition(SwingConstants.CENTER);
			    jb.setFocusPainted(false);
			    jb.setContentAreaFilled(false);
			    jb.setBorderPainted(false);
			    jb.setRolloverIcon(new ImageIcon("images/login_hover.jpg"));
			    JButton jbri=new JButton(new ImageIcon("images/right_normal.jpg"));
			    jbri.setBounds(380,10,40,40);
			    jbri.setFocusPainted(false);
			    jbri.setBorderPainted(false);
			    jbri.setContentAreaFilled(false);
			    jbri.setRolloverIcon(new ImageIcon("images/right_hover.jpg"));
			    jbri.setToolTipText("二维码登录");
			    panel.add(jble);
			    panel.add(jb);
			    panel.add(jbri);
			    jb.addActionListener(ll);
			    return panel;
			}
}