mainfunctionmenugui.java

来自「client server email system」· Java 代码 · 共 184 行

JAVA
184
字号
//IMPORT LIBRARIES NEEDED FOR GUI
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//IMPORT LIBRARIES NEEDED FOR STREAMS
import java.io.*;

class MainFunctionMenuGUI extends JFrame implements ActionListener
{
	//DECLARE COMPONENTS NEEDED FOR GUI
	private JButton read;
	private JButton send;
	private JLabel title;
	private JLabel messageInfo;
	private ImageIcon readIcon;
	private ImageIcon sendIcon;
	private JPanel buttonPanel;
	private JPanel bottomPanel;
	private JPanel topPanel;
	private Container pane;
	//DECLARE STREAMS NEEDED FOR TRANSMISSION
	private static ObjectInputStream objectIn;
	private static ObjectOutputStream objectOut;

	//////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////
	/////	PREFERRED SETTINGS FOR GUI STARTUP	//////////////////
	///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);
	//////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////

	//CONSTRUCTOR FOR GUI
	public MainFunctionMenuGUI()
	{
		addWindowListener(
			new WindowAdapter()
			{
				public void windowClosing(WindowEvent e)
				{
					//CLOSE DOWN CLIENT CORRECTLY
					EMailClient.closeDown();
				}
			}
		);

		addWindowListener(
			new WindowAdapter()
			{
				public void windowOpened(WindowEvent e)
				{
					try
					{
						//RECEIVE MAIL FROM SERVER
						recieveMessagesFromServer();
						//BACK UP MAIL FOR UNDELETING
						EMailClient.backupMail();
					}
					catch (ClassNotFoundException cnfe)
					{
						cnfe.printStackTrace();
					}
				}
			}
		);
		//SET GUI TITLE
		setTitle("E-Mail System Main Menu");
		//CREATE NEW ICONS FROM FILE
		readIcon = new ImageIcon("Mailbrd.gif");
		sendIcon = new ImageIcon("Airmail.gif");
		//CREATE NEW BUTTONS WITH ICONS
		read = new JButton("Read Email", readIcon);
		send = new JButton("Send Email", sendIcon);
		//SET ICON DISPLAY POSITION
		read.setVerticalTextPosition(SwingConstants.BOTTOM);
		read.setHorizontalTextPosition(SwingConstants.CENTER);
		send.setVerticalTextPosition(SwingConstants.BOTTOM);
    	send.setHorizontalTextPosition(SwingConstants.CENTER);
		//SET TITLES FOR GUI
		title = new JLabel("Please Make Your Selection");
		title.setFont(new Font("Arial", Font.BOLD, 25));
		messageInfo = new JLabel("You Have 0 Messages");
		messageInfo.setFont(new Font("Arial", Font.BOLD + Font.ITALIC, 20));
		//CREATE PANELS FOR GUI
		buttonPanel = new JPanel();
		bottomPanel = new JPanel();
		topPanel = new JPanel();
		//SET UP CONTAINER PANE AND LAYOUTS
		pane = getContentPane();
		pane.setLayout(new FlowLayout());
		buttonPanel.setLayout(new FlowLayout());
		bottomPanel.setLayout(new GridLayout(1,1));
		topPanel.setLayout(new GridLayout(1,1));
		//ADD COMPONENTS TO PANELS
		buttonPanel.add(read);
		buttonPanel.add(send);
		topPanel.add(title);
		bottomPanel.add(messageInfo);
		//ADD PANELS TO PANE
		pane.add(topPanel);
		pane.add(buttonPanel);
		pane.add(bottomPanel);
		//ADD ACTION LISTENERS FOR BUTTONS
		read.addActionListener(this);
		send.addActionListener(this);
	}

	//ACTION LISTENERS FOR GUI BUTTONS
	public void actionPerformed(ActionEvent e)
	{
		try
		{
			if(e.getSource() == send)
			{
				//CREATE GUI FOR SENDING MAIL
				SendMailWindowGUI sendMailWinGUI = new SendMailWindowGUI();
				Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
				final int HEIGHT = 600;
				final int WIDTH = 600;
				sendMailWinGUI.setBounds(((screenSize.width / 2) - (WIDTH / 2)),
									     ((screenSize.height / 2) - (HEIGHT / 2)), WIDTH, HEIGHT);
				sendMailWinGUI.setVisible(true);
				setVisible(false);//HIDE THIS WINDOW
			}
			if(e.getSource() == read)
			{
				//CREATE GUI FOR READING MAIL
				InboxList inbox = new InboxList();
				Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
				final int HEIGHT = 550;
				final int WIDTH = 600;
				inbox.setBounds(((screenSize.width / 2) - (WIDTH / 2)),
					            ((screenSize.height / 2) - (HEIGHT / 2)), WIDTH, HEIGHT);
				inbox.setVisible(true);
				setVisible(false);//HIDE THIS WINDOW
			}
		}
		catch(IOException ioe)
		{
			ioe.printStackTrace();
		}

	}

	//RECEIVE CLIENTS MAIL FROM SERVER
	private void recieveMessagesFromServer() throws ClassNotFoundException
	{
		try
		{
			//SET UP STREAM FOR OBJECT OUTPUT
			objectOut = new ObjectOutputStream(EMailClient.getLink().getOutputStream());
			//SEND MESSAGE TO SERVER
			String command = "RECIEVING";
			objectOut.writeObject(command);
			objectOut.flush();
			//SET UP STREAM FOR RECIEVING OBJECTS
			objectIn = new ObjectInputStream(EMailClient.getLink().getInputStream());
			//GET INSTRUCTION FROM SERVER
			String option = (String)objectIn.readObject();
			//GET ALL MAIL FROM SERVER
			while(option.equals("SENDING"))
			{
				Email email = (Email)objectIn.readObject();
				EMailClient.addMail(email);
				option = (String)objectIn.readObject();
			}
			//UPDATE MAIL RECIEVED LABEL
			messageInfo.setText("You Have " + EMailClient.inboxSize() + " Messages");
		}
		catch(IOException ioe)
		{
			ioe.printStackTrace();
		}
	}
}



⌨️ 快捷键说明

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