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

📄 createusergui.java

📁 client server email system
💻 JAVA
字号:
//IMPORT LIBRARIES NEEDED FOR GUI
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//IMPORT LIBRARY NEEDED FOR VECTOR
import java.util.*;
//IMPORT LIBRARY NEEDED FOR STREAMS
import java.io.*;

public class CreateUserGUI extends JFrame implements ActionListener
{
	//DECLARE PANELS NEEDED FOR GUI
	private JPanel buttonPanel;
	private JPanel inputPanel;
	//DECLARE BUTTONS NEEDED FOR GUI
	private JButton create;
	//DECLARE LABELS NEEDED FOR GUI
	private JLabel labelPassword;
	private JLabel labelUsername;
	//DECLARE FIELDS NEEDED FOR GUI
	private JPasswordField textPassword;
	private JTextField textUsername;
	//DECLARE CONTAINER NEEDED FOR GUI
	private Container pane;
	//DECLARE SOCKET AND OUTPUT STREAM FOR USER
	private static ObjectOutputStream objectOut;

	//////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////
	/////	PREFERRED SETTINGS FOR GUI STARTUP	//////////////////
	///CreateUserGUI create = new CreateUserGUI();
	///Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
	///final int HEIGHT = 100;
	///final int WIDTH = 300;
	///create.setBounds(((screenSize.width / 2) - (WIDTH / 2)),
	///				    ((screenSize.height / 2) - (HEIGHT / 2)), WIDTH, HEIGHT);
	///create.setVisible(true);
	//////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////

	//CONSTRUCTOR FOR GUI
	public CreateUserGUI()
	{
		//ADD WINDOW LISTENER TO DETECT CLOSING APPLICATION
		addWindowListener(
			new WindowAdapter()
			{
				public void windowClosing(WindowEvent e)
				{
					//SHUT DOWN CLIENT CORRECTLY
					EMailClient.closeDown();
				}
			}
		);
		//SET TITLE OF GUI
		setTitle("Create New User");
		//INITIALISE CONTENT PANE AND SET UP LAYOUT
		pane = getContentPane();
		pane.setLayout(new BorderLayout());
		//INITIALISE PANELS FOR GUI
		buttonPanel = new JPanel();
		inputPanel = new JPanel();
		//INITIALISE BUTTONS FOR GUI
		create = new JButton("Create New User");
		//INITIALISE LABELS FOR GUI
		labelPassword = new JLabel("Password");
		labelUsername = new JLabel("Username");
		//INITIALISE FIELDS FOR GUI
		textPassword = new JPasswordField(10);
		textUsername = new JTextField(10);
		//SET UP LAYOUTS FOR PANELS
		buttonPanel.setLayout(new GridLayout(1,1));
		inputPanel.setLayout(new GridLayout(2,2));
		//ADD GUI COMPONENTS TO PANELS
		buttonPanel.add(create, BorderLayout.CENTER);
		inputPanel.add(labelUsername);
		inputPanel.add(textUsername);
		inputPanel.add(labelPassword);
		inputPanel.add(textPassword);
		//ADD PANELS TO CONTENT PANE OF GUI
		pane.add(inputPanel, BorderLayout.NORTH);
		pane.add(buttonPanel, BorderLayout.SOUTH);
		//ADD ACTION LISTENER FOR BUTTONS
		create.addActionListener(this);
	}

	//ACTION LISTENER FOR GUI BUTTON
	public void actionPerformed(ActionEvent e)
	{
		//SPECIFY ACTION TO BE TAKEN ON BUTTON PRESS
		//DECLARE VARIABLES LOCAL TO METHOD
		String userName = textUsername.getText();
		String password = new String(textPassword.getPassword());
		//CHECK IF USER HAS ENTERED A VALID USERNAME AND PASSWORD
		boolean userExists = checkUserExists(userName, password);
		//IF VALID USERNAME LOG INTO SYSTEM
		if(userExists == false)
		{
			sendUserNameToServer(userName, password);
			sendUserNameToClient(userName, password);
			JOptionPane.showMessageDialog(pane, "New User Accepted");
			setVisible(false);
			//CREATE FUNCTION MENU GUI AND DISPLAY
			MainFunctionMenuGUI mainFunctionMenuGUI = new MainFunctionMenuGUI();
			Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
			final int HEIGHT = 350;
			final int WIDTH = 500;
			mainFunctionMenuGUI.setBounds(((screenSize.width / 2) - (WIDTH / 2)),
								          ((screenSize.height / 2) - (HEIGHT / 2)), WIDTH, HEIGHT);
			mainFunctionMenuGUI.setVisible(true);
		}
		else
		{
			//USERNAME ALREADY USED, DISPLAY WARNING CLEAR FIELDS
			JOptionPane.showMessageDialog(pane, "Sorry User Already Exists");
			textUsername.setText("");
			textPassword.setText("");
		}
	}

	//CHECKS IF A USER ALREADY EXISTS ON SERVER
	public static boolean checkUserExists(String userName, String password)
	{
		//CHECKS WHETHER OR NOT A USER EXISTS ON SERVER
		//MAKE A COPY OF USERNAMES FROM SERVER
		Vector userNames = EMailClient.getUserNames();
		//DECLARE VARIABLES LOCAL TO METHOD
		int vectorSize = userNames.size();
		int vectorPosition;
		String extractedUser;
		String extractedPassword;
		boolean exists = false;
		//SEARCH THROUGH VECTOR TO CHECK ALL USERNAMES
		for(vectorPosition = 0; vectorPosition < vectorSize; vectorPosition++)
		{
			//RETRIEVE FIRST USER OBJECT FROM VECTOR
			User temp = (User)userNames.elementAt(vectorPosition);
			//EXTRACT USERNAME AND PASSWORD FROM USER OBJECT
			extractedUser = temp.getUserName();
			extractedPassword = temp.getPassword();
			//CHECK IF EXTRACTED INFO MATCHES PASSED IN INFO
			if(extractedUser.equals(userName))
			{
				//IF USER EXISTS SET TO TRUE AND QUIT LOOP
				exists = true;
				break;
			}
		}
		//RETURN WHETHER USER EXISTS OR NOT
		return exists;
	}

	//SENDS THE NEWLY CREATED USERS DETAILS TO SERVER
	private static void sendUserNameToServer(String userName, String password)
	{
		try
		{
			//SET USER STATUS TO TRUE FOR NEW USER
			Boolean userStatus = Boolean.TRUE;
			//SET UP OBJECT OUTPUT STREAM
			objectOut = new ObjectOutputStream(EMailClient.getLink().getOutputStream());
			//CREATE NEW USER FROM ENTERED USER
			User user = new User(userName, password);
			//SEND INFORMATION TO SERVER
			objectOut.writeObject(user);
			objectOut.writeObject(userStatus);
			//FLUSH STREAM
			objectOut.flush();
		}
		catch (IOException ioe)
		{
			ioe.printStackTrace();
		}
	}

	//SETS THE USERS NAME ON THE CLIENT
	private void sendUserNameToClient(String userName, String password)
	{
		User user = new User(userName, password);
		EMailClient.setUser(user);
		EMailClient.addUser(user);
	}
}

⌨️ 快捷键说明

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