⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginframe.java

📁 文件共享虚拟社区,可以实现上传下载聊天等多种信息交互.
💻 JAVA
字号:
/*
 * 创建日期 2005-9-7
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package fsc.client;

/**
 * @author 清澄
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
/*
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
*/
import fsc.models.*;
import fsc.models.exceptions.*;
import fsc.util.*;


public class LoginFrame extends JFrame
implements ActionListener{
	private ClientApp app;
	
	private static final String SERVER_IP="127.0.0.1";
	private static final int SERVER_PORT=8000;
	
	JLabel user;
	JLabel password;
	JLabel welcome;
	JButton enter;
	JButton register;
	JButton cancel;
	JTextField myname;
	JPasswordField mypassword;
	LoginModel lm;
	
public  LoginFrame(String name, ClientApp a)
{
		super(name);
		app=a;
		lm = app.loginModel;
		Container container=getContentPane();
		container.setLayout(null);
		enter=new JButton("登录");
		register=new JButton("注册");
		cancel=new JButton("取消");
		user=new JLabel("请输入帐号");
		password=new JLabel("请输入密码");
		welcome=new JLabel(" 欢  迎  使  用 ");
		myname=new JTextField(10);
		mypassword=new JPasswordField(10);		
		user.setBounds(10,30,100,30);
		password.setBounds(10,80,100,30);
		enter.setBounds(50,140,80,30);
		register.setBounds(160,140,80,30);
		cancel.setBounds(270,140,80,30);
		myname.setBounds(100,30,220,30);
		mypassword.setBounds(100,80,220,30);
		welcome.setBounds(130,170,200,80);
		container.add(user);
		container.add(password);
		container.add(welcome);
		container.add(enter);
		container.add(register);
		container.add(cancel);
		container.add(myname);
		container.add(mypassword);
		setSize(400,300);
		setLocation(300,200);
		setVisible(true);
		setResizable(false);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		enter.addActionListener(this);
		register.addActionListener(this);
		cancel.addActionListener(this);
	}
	public void actionPerformed(ActionEvent e){
		if(e.getSource()==enter)
		{
			System.out.println("enter");
			String u= myname.getText();
			String p= mypassword.getText();

			try
			{
				lm.setUserName(u);
				lm.setPassword(p);;
				
			}
			catch(InvalidUserNameException ex)
			{
				JOptionPane.showMessageDialog(this,ex.getMessage(),"提示",JOptionPane.ERROR_MESSAGE);
				return;
			}
			catch (InvalidPassswordException ex) {
				JOptionPane.showMessageDialog(this,ex.getMessage(),"提示",JOptionPane.ERROR_MESSAGE);
				return;
			} 
			catch (Exception ex) {
				JOptionPane.showMessageDialog(this,"未知错误!","提示",JOptionPane.ERROR_MESSAGE);
				return;
			}
			
			//try to connect the server
			try
			{
				
				System.err.println("trying to connect server");
				
				app.getDataOutputStream().writeUTF(lm.toString());
				String result= app.getDataInputStream().readUTF();
				StringProcessor sp = new StringProcessor(result);
				if(sp.getLine().equals(LoginResultModel.TAG))
				{
					LoginResultModel lrm= new LoginResultModel(sp.getContent());
					if(lrm.getLoginResult().equals("YES"))
					{
						JOptionPane.showMessageDialog(this,"登陆成功!\n"+lrm.getExternalInfo(),"提示",JOptionPane.ERROR_MESSAGE);
					}
					else
					{
						JOptionPane.showMessageDialog(this,"登陆失败!\n"+lrm.getExternalInfo(),"提示",JOptionPane.ERROR_MESSAGE);
						app.closeIOStreamsAndDisconnect();
					}
					
				}
				
			}
			catch(Exception ex)
			{
				ex.printStackTrace();
			}
			
			
		}
		else if(e.getSource()==register){
			
			app.createRegisterFrame("注册界面");
		}
		else if(e.getSource()==cancel)
		{
			System.exit(0);
		}
	}


	public static void main( String[] args)
	{
		new LoginFrame("用户登录",null);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -