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

📄 loginframe.java

📁 网络聊天程序
💻 JAVA
字号:
 package Java.ICQ;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
public class LoginFrame extends JFrame
{
//声明变量	
  JPanel contentPane;
  String server;//服务器名
  int serport;//端口
  private Socket socket;
  private BufferedReader in;//输入输出流
  private PrintWriter out;
 
//初始化界面
   JLabel jLabel1 = new JLabel();
   JLabel jLabel2 = new JLabel();
   JTextField jicq = new JTextField();
   JLabel jLabel3 = new JLabel();
   JPasswordField password = new JPasswordField();
   JButton login = new JButton();
   JButton newuser = new JButton();
   JButton quit = new JButton();
   JLabel jLabel6 = new JLabel();
   JTextField servername = new JTextField();
   JLabel jLabel7 = new JLabel();
   JTextField serverport = new JTextField();
  
    public LoginFrame()
	{
         initFrame();
         initUI();
         addFrame();
         addListener();
	}
	//设置窗体信息
	public void initFrame()
	{
		
		 contentPane = (JPanel) this.getContentPane();
         contentPane.setLayout(null);
         this.setResizable(false);
         this.setSize(new Dimension(344, 245));
         this.setTitle("登录");
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	//初始化UI界面
	public void initUI()
	{
         jLabel1.setText("请输入你的信息");
         jLabel1.setBounds(new Rectangle(5, 7, 103, 18));
         jLabel2.setText("你的QICQ");
         jLabel2.setBounds(new Rectangle(7, 50, 58, 18));
         jicq.setBounds(new Rectangle(68, 50, 97, 22));
         jLabel3.setText("你的密码");
         jLabel3.setBounds(new Rectangle(173, 50, 67, 18));
         password.setBounds(new Rectangle(237, 50, 94, 22));
         
         jLabel6.setText("服务器");
         jLabel6.setBounds(new Rectangle(5, 100, 41, 18));
         servername.setText("127.0.0.1");
         servername.setBounds(new Rectangle(68, 100, 102, 22));
         jLabel7.setText("端口");
         jLabel7.setBounds(new Rectangle(173, 100, 41, 18));
         serverport.setText("8080");
         serverport.setBounds(new Rectangle(237, 100, 90, 22));
         login.setText("登录");
         login.setBounds(new Rectangle(10, 150, 79, 29));
         newuser.setText("注册");
         newuser.setBounds(new Rectangle(118, 150, 79, 29));
         quit.setText("退出");
         quit.setBounds(new Rectangle(228, 150, 79, 29));
         
          //获取服务器名和端口号
         server=servername.getText().toString().trim();
         serport=Integer.parseInt(serverport.getText().trim());
	}
	//添加组件到窗体上
	public void addFrame()
	{
         contentPane.add(jLabel1, null);
         contentPane.add(jLabel2, null);
         contentPane.add(jicq, null);
         contentPane.add(jLabel3, null);
         contentPane.add(password, null);
         contentPane.add(login, null);
         contentPane.add(quit, null);
         contentPane.add(newuser, null);
         contentPane.add(jLabel6, null);
         contentPane.add(servername, null);
         contentPane.add(jLabel7, null);
         contentPane.add(serverport, null);
	}
	//为每个按钮添加事件监听
	public void addListener()
	{
         login.addActionListener(new ActionListener()
         {
         	public void actionPerformed(ActionEvent e) 
         	{
         		login_actionPerformed();
            }
         });
         newuser.addActionListener(new ActionListener()
         {
              public void actionPerformed(ActionEvent e) 
              {
              	 newuser_actionPerformed();
              }
         });
         quit.addActionListener(new ActionListener() 
         {
         	public void actionPerformed(ActionEvent e) 
            {
             	quit_actionPerformed();
            }
         });
	}
	//登录按扭事件处理
	public void login_actionPerformed() 
	{
		getConnectServer();
   }
   //注册事件处理
   public void newuser_actionPerformed()
   {
   	this.dispose();
   	RegisterDialog dialog=new RegisterDialog(server,serport);//打开新建窗口
   }
   //退出事件处理
   public void quit_actionPerformed()
   {
   	    System.exit(0);
   }
   public void getConnectServer()
   {
   	try
      {
      	Socket socket=new Socket(InetAddress.getByName(server),serport);//连接服务器
        BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
        
        out.println("login");//告诉服务器我要登录
        out.println(Integer.parseInt(jicq.getText().trim()));
        out.println(password.getPassword());
        String str=" ";
       
      //do{
        str=in.readLine().trim();//从服务器读取消息
        //如果失败就告诉出错
        if(str.equals("false")) 
        {
        	MessageDialog("对不起,出错了:-(","ok");
        }
        if(str.equals("usernameError"))
        {
        	MessageDialog("没有这样的用户名!","消息对话框");
        }
        if(str.equals("passwordError"))
        {
        	MessageDialog("密码错误!","消息对话框");
        }
        if(str.equals("usernamepassword"))
        {
        	MessageDialog("用户名必需数字!","消息对话框");
        }
        if(str.equals("succeed"))
        {
        	MessageDialog("登录成功!","消息对话框");
     	//如果成功就打开主程序
        this.dispose();
        int g=Integer.parseInt(jicq.getText());
        MainFrm f2=new MainFrm(g,server,serport);
        f2.setVisible(true);
        }
        in.close();
        out.close();
       }
       catch(IOException e1)
       {
    	JOptionPane.showMessageDialog(this,e1.getMessage());
       }
       catch(Exception e)
       {
       	System.out.println("错误码");
        }
        finally
        {
        	try
        	{
        		in.close();
                out.close();
        		
        	}
        	catch(Exception ee)
        	{
        	}
        }
   }
   public void MessageDialog(String text,String title)
   {
      JOptionPane.showMessageDialog(this,text,title,JOptionPane.INFORMATION_MESSAGE);
   }
   //main主函数
   public static void main(String arg[])
   {
   	try
   	 {
   	 	UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
     }
     catch(Exception e) 
     {
      e.printStackTrace();
     }
	 LoginFrame frame= new LoginFrame();
	 frame.setVisible(true);
   }
}

⌨️ 快捷键说明

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