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

📄 logiongui.java

📁 企业级的即时通软件。。java语言写的 这是客户端部份。
💻 JAVA
字号:
package edu.sccp.chat.frame;

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import com.swtdesigner.SwingResourceManager;



import edu.sccp.chat.action.ToServerProcess;
import edu.sccp.chat.jarClass.JarAllege;
import edu.sccp.chat.tools.Check;

public class LogionGUI {

	private JTextField ipField4;
	private JTextField ipField3;
	private JTextField ipField2;
	/**
	 * @param args
	 * 
	 */
	public static int IDENTITY=1;//登陆身份,默认普通用户0,1为管理员
	JFrame frame;
	JTextField nameField;
	JPasswordField passwordField;
	JComboBox comboBox;
	JTextField ipField1;
	JTextField socketField;
	JLabel label_9;
	JLabel label_10;
	JLabel label_11;
	JLabel label_12;
	JLabel label_13;
	JLabel label_14;
	public LogionGUI()
	 {
		JarAllege.bai();
		initGUI();
	 }
	 private void initGUI()
	 {
		 frame=new JFrame("企业即时通 登陆");
		 frame.setIconImage(SwingResourceManager.getImage(LogionGUI.class, "/edu/sccp/chat/image/icon.png"));
		 Container contentPane=frame.getContentPane();
		 contentPane.setLayout(null);

		 final JButton logion = new JButton();
		 logion.addActionListener(new ActionListener() {
		 	public void actionPerformed(final ActionEvent e) {
		 		if(nameField.getText().length()==0)
		 		{
		 			JOptionPane.showMessageDialog(frame,"用户名不能为空!","警告",JOptionPane.WARNING_MESSAGE,null);
					return;
		 		}
		 		else
		 		{
		 			if(!(Check.checkMsg(nameField.getText(),8,10,true)))
		 			{
		 				JOptionPane.showMessageDialog(frame,"用户名输入格式不对,请确认输入的是数字并保持在8-10之内!","警告",JOptionPane.WARNING_MESSAGE,null);
		 				return;
		 			}
		 		}
		 		if(passwordField.getText().length()==0)
		 		{
		 			JOptionPane.showMessageDialog(frame,"密码不能为空!","警告",JOptionPane.WARNING_MESSAGE,null);
		 			return;
		 		}
		 		else
		 		{
		 			if(!(Check.checkMsg(passwordField.getText(), 6, 10, false)))
		 			{
		 				JOptionPane.showMessageDialog(frame,"输入的密码不符合长度!","警告",JOptionPane.WARNING_MESSAGE,null);
		 				return;
		 			}
		 		}
		 		if(ipField1.getText().length()==0||ipField2.getText().length()==0||ipField3.getText().length()==0||ipField4.getText().length()==0)
		 		{
		 			JOptionPane.showMessageDialog(frame,"IP不能为空","警告",JOptionPane.WARNING_MESSAGE,null);
	 				return;
		 		}else
		 		{
		 			if((!Check.isDigit(ipField1.getText()))||(!Check.isDigit(ipField2.getText()))||(!Check.isDigit(ipField3.getText()))||(!Check.isDigit(ipField4.getText())))
		 					{
		 				JOptionPane.showMessageDialog(frame,"IP只能为数字!","警告",JOptionPane.WARNING_MESSAGE,null);
		 				return;
		 					}
		 			if(!(Check.inRange(ipField1.getText(), 0, 255)))
		 			{
		 				JOptionPane.showMessageDialog(frame,"IP格式不对","警告",JOptionPane.WARNING_MESSAGE,null);
		 				return;
		 			}
		 			if(!(Check.inRange(ipField2.getText(), 0, 255)))
		 			{
		 				JOptionPane.showMessageDialog(frame,"IP格式不对!","警告",JOptionPane.WARNING_MESSAGE,null);
		 				return;
		 			}
		 			if(!(Check.inRange(ipField3.getText(), 0, 255)))
		 			{
		 				JOptionPane.showMessageDialog(frame,"IP格式不对!","警告",JOptionPane.WARNING_MESSAGE,null);
		 				return;
		 			}
		 			if(!(Check.inRange(ipField4.getText(), 0, 255)))
		 			{
		 				JOptionPane.showMessageDialog(frame,"IP格式不对!","警告",JOptionPane.WARNING_MESSAGE,null);
		 				return;
		 			}
		 		}
		 		if(socketField.getText().length()==0)
		 		{
		 			JOptionPane.showMessageDialog(frame,"端口号不能为空!","警告",JOptionPane.WARNING_MESSAGE,null);
	 				return;
		 		}
		 		else
		 		{
		 			if(!(Check.isDigit(socketField.getText())))
		 			{
		 				JOptionPane.showMessageDialog(frame,"端口号必须为数字!","警告",JOptionPane.WARNING_MESSAGE,null);
		 				return;
		 			}
		 			if(!(Check.inRange(socketField.getText(),1023,65535)))
		 			{
		 				JOptionPane.showMessageDialog(frame,"端口号设置不在范围之内!","警告",JOptionPane.WARNING_MESSAGE,null);
		 				return;
		 			}
		 		}
		 		login();
		 	}
		 });
		 logion.setText("登录");
		 logion.setBounds(20, 187, 71, 25);
		 frame.getContentPane().add(logion);

		 final JButton reset = new JButton();
		 reset.addActionListener(new ActionListener() {
		 	public void actionPerformed(final ActionEvent e) {
		 		nameField.setText("");
		 		passwordField.setText("");
		 	}
		 });
		 reset.setText("重置");
		 reset.setBounds(116, 187, 78, 25);
		 frame.getContentPane().add(reset);
		 final JButton exit = new JButton();
		 exit.addActionListener(new ActionListener() {
		 	public void actionPerformed(final ActionEvent e) {
		 		int i=JOptionPane.showConfirmDialog(frame,"确定要退出?","提示",JOptionPane.YES_OPTION,JOptionPane.INFORMATION_MESSAGE,null);
		 		if(i==0)
		 		{
		 			System.exit(0);
		 		}
		 	}
		 });
		 exit.setText("退出");
		 exit.setBounds(211, 187, 80, 25);
		 frame.getContentPane().add(exit);

		 final JLabel label_8 = new JLabel();
		 label_8.setFont(new Font("", Font.BOLD, 16));
		 label_8.setText("客户端");
		 label_8.setBounds(119, 7, 75, 32);
		 frame.getContentPane().add(label_8);

		 final JTabbedPane tabbedPane = new JTabbedPane();
		 tabbedPane.setBounds(10, 45, 299, 136);
		 frame.getContentPane().add(tabbedPane);

		 final JPanel panel = new JPanel();
		 panel.setLayout(null);
		 tabbedPane.addTab("登录", null, panel, null);

		 final JLabel label_1 = new JLabel();
		 label_1.setBounds(22, 8, 71, 24);
		 panel.add(label_1);
		 label_1.setText("用户名:");

		 nameField = new JTextField();
		 nameField.addFocusListener(new FocusAdapter() {
		 		public void focusGained(final FocusEvent e) {
					if(nameField.getText().length()==0)
						{
						label_9.setText("8-10位");
						}
				}
				public void focusLost(final FocusEvent e) {
					if(nameField.getText().length()==0)
					label_9.setText("不能为空");
					else
						label_9.setText("");
				}
		 });
		 nameField.setBounds(74, 10, 137, 21);
		 panel.add(nameField);

		 final JLabel label_2 = new JLabel();
		 label_2.setBounds(22, 38, 57, 16);
		 panel.add(label_2);
		 label_2.setText(" 密  码:");

		 passwordField = new JPasswordField();
		 passwordField.addFocusListener(new FocusAdapter() {
			 public void focusGained(final FocusEvent e) {
					if(passwordField.getText().length()==0)
						{
						label_10.setText("6-10位");
						}
				}
				public void focusLost(final FocusEvent e) {
					if(passwordField.getText().length()==0)
					label_10.setText("不能为空");
					else
						label_10.setText("");
				}
		 });
		 passwordField.setBounds(74, 35, 137, 23);
		 panel.add(passwordField);

		 comboBox = new JComboBox();
		 comboBox.addItemListener(new ItemListener() {
		 	public void itemStateChanged(final ItemEvent e) {
		 		if(comboBox.getSelectedItem().equals("普通用户"))
		 			LogionGUI.IDENTITY=0;
		 		if(comboBox.getSelectedItem().equals("管理员"))
		 			LogionGUI.IDENTITY=1;
		 	}
		 });
		 comboBox.setBounds(74, 67, 110, 20);
		 panel.add(comboBox);
		 comboBox.addItem("普通用户");
		 comboBox.addItem("管理员");

		 final JLabel label_3 = new JLabel();
		 label_3.setBounds(10, 69, 71, 16);
		 panel.add(label_3);
		 label_3.setText("登录类型:");

		 label_9 = new JLabel();
		 label_9.setForeground(new Color(255, 0, 0));
		 label_9.setBounds(217, 12, 67, 16);
		 panel.add(label_9);

		 label_10 = new JLabel();
		 label_10.setForeground(new Color(255, 0, 0));
		 label_10.setBounds(216, 38, 68, 16);
		 panel.add(label_10);

		 label_13 = new JLabel();
		 label_13.setForeground(new Color(255, 0, 0));
		 label_13.setBounds(163, 67, 101, 16);
		 panel.add(label_13);

		 label_14 = new JLabel();
		 label_14.setForeground(new Color(255, 0, 0));
		 label_14.setBounds(163, 89, 101, 16);
		 panel.add(label_14);

		 final JPanel panel_1 = new JPanel();
		 panel_1.setLayout(null);
		 tabbedPane.addTab("配置", null, panel_1, null);

		 final JLabel label_4 = new JLabel();
		 label_4.setBounds(26, 10, 58, 16);
		 panel_1.add(label_4);
		 label_4.setText("连接IP:");

		 ipField1 = new JTextField();
		 ipField1.addFocusListener(new FocusAdapter() {
		 	public void focusGained(final FocusEvent e) {
		 		if(ipField1.getText().length()==0)
				{
				label_12.setText("大于0小于255");
				}
		 	}
		 });
		 ipField1.setBounds(74, 8, 42, 21);
		 panel_1.add(ipField1);
		 ipField1.addKeyListener(new KeyAdapter() {
		 	public void keyPressed(final KeyEvent e) {
		 		
		 		if(ipField1.getText().length()==2)
		 		{
		 			ipField2.requestFocus();
		 		} 		
		 	}
		 });

		 final JLabel label = new JLabel();
		 label.setBounds(122, 10, 18, 16);
		 panel_1.add(label);
		 label.setText(".");

		 ipField2 = new JTextField();
		 ipField2.addFocusListener(new FocusAdapter() {
		 	public void focusGained(final FocusEvent e) {
		 		if(ipField1.getText().length()==0)
				{
				label_12.setText("大于0小于255");
				}
		 	}
		 });
		 ipField2.setBounds(133, 8, 44, 21);
		 panel_1.add(ipField2);
		 ipField2.addKeyListener(new KeyAdapter() {
			 	public void keyPressed(final KeyEvent e) {
			 		
			 		if(ipField2.getText().length()==2)
			 		{
			 			ipField3.requestFocus();
			 		}
			 	}
			 });

		 final JLabel label_6 = new JLabel();
		 label_6.setBounds(183, 10, 13, 16);
		 panel_1.add(label_6);
		 label_6.setText(".");

		 ipField3 = new JTextField();
		 ipField3.addFocusListener(new FocusAdapter() {
		 	public void focusGained(final FocusEvent e) {
		 		if(ipField1.getText().length()==0)
				{
				label_12.setText("大于0小于255");
				}
		 	}
		 });
		 ipField3.setBounds(189, 8, 40, 21);
		 panel_1.add(ipField3);
		 ipField3.addKeyListener(new KeyAdapter() {
			 	public void keyPressed(final KeyEvent e) {
			 		
			 		if(ipField3.getText().length()==2)
			 		{
			 			ipField4.requestFocus();
			 		}
			 	}
			 });

		 final JLabel label_7 = new JLabel();
		 label_7.setBounds(235, 10, 13, 16);
		 panel_1.add(label_7);
		 label_7.setText(".");

		 ipField4 = new JTextField();
		 ipField4.addFocusListener(new FocusAdapter() {
			 public void focusLost(final FocusEvent e) {
					if(ipField4.getText().length()==0 || ipField1.getText().length()==0 || ipField2.getText().length()==0 || ipField3.getText().length()==0)
						{
						label_12.setText("IP不能为空");
						label_14.setText("IP不能为空");
						}
					else
						{
						label_12.setText("");
						label_14.setText("");
						}
				}
			 public void focusGained(final FocusEvent e) {
			 		if(ipField1.getText().length()==0)
					{
					label_12.setText("大于0小于255");
					}
			 	}
		 });
		 ipField4.setBounds(241, 8, 40, 21);
		 panel_1.add(ipField4);
		 ipField4.addKeyListener(new KeyAdapter() {
			 	public void keyPressed(final KeyEvent e) {
			 		
			 		if(ipField4.getText().length()==2)
			 		{
			 			socketField.requestFocus();
			 		}
			 	}
			 });

		 final JLabel label_5 = new JLabel();
		 label_5.setBounds(24, 46, 60, 16);
		 panel_1.add(label_5);
		 label_5.setText("端口号:");

		 socketField = new JTextField();
		 socketField.setText("5566");
		 socketField.addFocusListener(new FocusAdapter() {
			 public void focusGained(final FocusEvent e) {
					if(socketField.getText().length()==0)
						{
						label_11.setText("大于1023");
						}
				}
				public void focusLost(final FocusEvent e) {
					if(socketField.getText().length()==0)
					{
						label_11.setText("端口不能为空");
						label_13.setText("端口不能为空");
					}
					else
						{
						label_11.setText("");
						label_13.setText("");
						}
				}
		 });
		 socketField.setBounds(74, 44, 44, 21);
		 panel_1.add(socketField);

		 label_11 = new JLabel();
		 label_11.setForeground(new Color(255, 0, 0));
		 label_11.setBounds(122, 46, 107, 16);
		 panel_1.add(label_11);

		 label_12 = new JLabel();
		 label_12.setForeground(new Color(255, 0, 0));
		 label_12.setBounds(133, 83, 128, 16);
		 panel_1.add(label_12);
	 }
	 public void showGUI()
	 {
		 frame.setResizable(false);
		 frame.setSize(324,252);
		 frame.setLocationRelativeTo(null);//中间显示界面
		 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		 frame.setVisible(true);
	 }
	 public void login()
	 {
		 String name=nameField.getText().trim();
		 String password=passwordField.getText().trim();
		 String ip=ipField1.getText().trim()+"."+ipField2.getText().trim()+"."+ipField3.getText().trim()+"."+ipField4.getText().trim();
		 String socket=socketField.getText().trim();
		 boolean fal=false;//用户登陆
		 if(comboBox.getSelectedItem().equals("管理员"))
			 fal=true;
		 try {
			 Vector vector=new ToServerProcess(ip,socket).login(name,password,fal);
			 Vector v=(Vector) vector.get(0);
			 if(v.get(0).equals("false"))
			 {
				 JOptionPane.showMessageDialog(frame,"登录失败,账号或密码错误或登录的权限不足!","警告",JOptionPane.WARNING_MESSAGE,null);
	 				return;
			 }
			 if(v.get(0).equals("重复"))
			 {
				 JOptionPane.showMessageDialog(frame,"此ID已登录,请稍后登录!","警告",JOptionPane.WARNING_MESSAGE,null);
	 				return;
			 }
			 frame.dispose();
			 new MainGUI(vector).showGUI();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
		
		}
	 }
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		new LogionGUI().showGUI();
	}

}

⌨️ 快捷键说明

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