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

📄 clientui.1

📁 一个实现网络会议的软件.包含三个包.其中一个包需JMF的支持.
💻 1
📖 第 1 页 / 共 5 页
字号:
package clientPackage;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import java.util.*;
import java.rmi.*;
import java.io.*;
import java.net.*;
import java.beans.*; 
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
import javax.swing.JDialog;
import javax.swing.JTextField;

import serverPackage.UserConfig;
import mediaPackage.*;

/**
  * ClientUI is a standalone Java application that implemented all major user interface
  * components of Central Symposium.
  * 
  * @author Naizheng Bian, Sirong Lin, Yuying Tian
  * @version 1.0
  */
public class ClientUI extends JFrame implements ActionListener, PropertyChangeListener {

    /** current user name */    
    private String myName;
    /** current user's password */    
    private String myPassword;
    /** current user's catergory */    
    private int myCategory;

    //----Menu and menu items-----
    /** main menubar */    
    JMenuBar menuBar;

    /** file menu*/    
    JMenu fileMenu;
    /** exit menu item */    
    JMenuItem exitMenuItem;
    /** tool menu */    
    JMenu toolsMenu;
    /** textChat Menu Item */    
    JMenuItem textChatMenuItem;
    /** sendFeedback Menu Item */    
    JMenuItem sendFeedbackMenuItem;
    /** for presenter, receiveFeedback Menu Item */
    JMenuItem receiveFeedbackMenuItem;

    /** action menu*/
    JMenu actionsMenu;
    /** raise Raise Hand Menu Item*/        
    JMenuItem raiseHandMenuItem;
    /** lowerAll Hands Menu Item*/        
    JMenuItem lowerAllHandMenuItem;
    /** say Yes Menu Item*/
    JMenuItem sayYesMenuItem;
    /** say no Menu Item*/
    JMenuItem sayNoMenuItem;
    /** clear Yes/No Menu Item*/
    JMenuItem clearYesNoMenuItem;
    /** start / stop session Menu Item*/
    JMenuItem sessionInMenuItem;
    /** give Mic to next Menu Item*/
    JMenuItem giveMicToNextMenuItem;
    /** step out Menu Item*/
    JMenuItem stepOutMenuItem;
    /** logout Menu Item*/
    JMenuItem logoutMenuItem;

    /** help menu*/
    JMenu helpMenu;
    /** about menu item*/
    JMenuItem aboutMenuItem;
    JMenuItem howToUseMenuItem;
    //--------end of Menu and menu items-----

    /** toolbar and its buttons*/
    private String iconDir = "clientPackage\\icon\\";
    /** toolbar in the main menu*/
    private myToolBar mytoolBar;
    
    /**for user, hand button*/
    private JToggleButton handButton;
    /**for user, yes button*/
    private JToggleButton yesButton;
    /**for user, no button*/
    private JToggleButton noButton;
    
    /**for presenter, lower all hands button*/
    private JButton lowHandButton;
    /**for presenter, clear Yes/No button*/
    private JButton clearYesNoButton;
    /**for presenter, give mic to next button*/
    private JButton giveMicToNextButton;
    /**for presenter, start/end sesssion button*/
    private JToggleButton sessionInButton;
    
    /**for both, textchat button*/
    private JButton textChatButton;
    /**for both, vociechat button*/
    private JToggleButton voiceChatButton;
    /**for both, send/receive feedback button*/
    private JButton feedbackButton;
    /**for both, stepin/out button*/
    private JToggleButton stepInButton;
    /**for both, logout button*/
    private JButton logoutButton;
    
    /**for displaying a speaker*/
    private JButton speakerButton;
    /** end of toolbar */

    /** main split Pane*/
    private JSplitPane splitPaneContent;
    /** left split Pane*/
    private JSplitPane leftSplitPane;
    //--------------Session Status -------------------------
    /** panel for display the session status*/
    JPanel sessionStatusPanel;
    /** in/out session status*/
    JLabel inOutSession;

    //--------------ChatDisplay -------------------------
    /** instance of chat display panel*/
    private ChatDisplay chatDisplay;
    /** instance of chat frame */
    private JFrame chatFrame;
    /** menubar of chat display */
    private JMenuBar chatMenuBar;
    /** chat menu */
    private JMenu chatMenu;
    /** save menu item */
    private JMenuItem saveMenuItem;
    /** clear Public message MenuItem */
    private JMenuItem clearPublicMenuItem;
    /** clear Private message MenuItem */
    private JMenuItem clearPrivateMenuItem;
    /** refresh Public message MenuItem */
    private JMenuItem refreshMenuItem;

    //-------------- send/receive feedback -------------
    /** send feedback window*/
    private FeedbackDisplay feedbackWindow;
    /** send feedback frame*/
    private JFrame feedbackFrame;
    /** receive feedback window*/
    private FeedResultDisplay feedResultWindow;
    /** receive feedback frame*/
    private JFrame receiveFeedbackFrame;
    
    /** instance of content Manager */
    private ContentManager contentManager;
    /** instance of content Manager */
    private ContentDisplay contentDisplay;
    /** instance of userList */
    private UserListDisplay userListDisplay;
    	
    /** instance of client class*/
    private ClientClass client;


//-----------------------Constructor of Client UI---------------------------------	
    /**
      * Constructor of ClientUI 
      */
	public ClientUI() {}

    /**
      * Constructor, create ClientUI
      * @param hostName name of the server host
      * @param portNumber name of the server port number
      */
	public ClientUI(String hostName, String portNumber) 
	{
    		super("ClientUI");
		setSize(800, 600);
		client = new ClientClass(hostName, portNumber);

	  	//register users
        	client.registerUser();

        	client.addPropertyChangeListener(this);

        	contentManager = new ContentManager();
        	contentManager.addPropertyChangeListener(this);
        	contentDisplay = new ContentDisplay();
		contentDisplay.addPropertyChangeListener(this);
		

		feedbackFrame = new JFrame();
		feedbackFrame.setTitle("Send Feedback");
      		receiveFeedbackFrame = new JFrame();
      		receiveFeedbackFrame.setTitle("Receive Feedback");
      		feedbackWindow = new FeedbackDisplay();
	  	feedResultWindow = new FeedResultDisplay();
        }
//--------------------------------------------initComponents-------------------------------------
    /**
     * initialize the components in ClientUI
     */
	private void initComponents() 
	{
		//----------initiate menu items---------
		menuBar = new JMenuBar();
		fileMenu = new JMenu("File");
        	exitMenuItem = new JMenuItem("Exit");
		exitMenuItem.addActionListener(new ActionListener() {
            		public void actionPerformed(ActionEvent evt) {
                		ExitAction();
            		}
        	});
		fileMenu.add(exitMenuItem);
        	menuBar.add(fileMenu);

		//-----------Tools menu --------
        	toolsMenu = new JMenu("Tools");
        	textChatMenuItem = new JMenuItem("Text Chat");
		textChatMenuItem.addActionListener(new ActionListener() {
            		public void actionPerformed(ActionEvent evt) {
                		TextChatAction();
            		}
        	});
		toolsMenu.add(textChatMenuItem);

		//------------set menu for USER/PRESENTER-------
		if(myCategory == Constants.USER)
		{
        		sendFeedbackMenuItem = new JMenuItem("Send FeedBack");
			sendFeedbackMenuItem.addActionListener(new ActionListener() {
            			public void actionPerformed(ActionEvent evt) {
                			SendFeedbackAction();
            			}
        		});
			toolsMenu.add(sendFeedbackMenuItem);
		}
		else if(myCategory==Constants.PRESENTER)
		{
			receiveFeedbackMenuItem = new JMenuItem("Receive FeedBack");
			receiveFeedbackMenuItem.addActionListener(new ActionListener() {
            		public void actionPerformed(ActionEvent evt) {
                		ReceiveFeedbackAction();
            		}
        		});
			toolsMenu.add(receiveFeedbackMenuItem);
		}
		menuBar.add(toolsMenu);

		//----------Actions menu --------------
        	actionsMenu = new JMenu("Actions");
		if(myCategory==Constants.PRESENTER)
		{
       			lowerAllHandMenuItem = new JMenuItem("Lower All Hand");
       			lowerAllHandMenuItem.setEnabled(false);
			lowerAllHandMenuItem.addActionListener(new ActionListener() {
            			public void actionPerformed(ActionEvent evt) {
                			LowerAllHandAction();
            			}
        		});
			actionsMenu.add(lowerAllHandMenuItem);
		}
		else if(myCategory==Constants.USER)
		{
       		   	raiseHandMenuItem = new JMenuItem("Raise Hand");
		   	raiseHandMenuItem.addActionListener(new ActionListener() {
        	    	public void actionPerformed(ActionEvent evt) {
               			if (handButton.isSelected()) {
    					handButton.setSelected(false);
				}
				else {
					handButton.setSelected(true);
				}
               			RaiseHandAction();
            		}
        	   });
		   actionsMenu.add(raiseHandMenuItem);
		}

		//--------
		if(myCategory==Constants.USER)
		{
       		sayYesMenuItem = new JMenuItem("Say Yes");
			sayYesMenuItem.addActionListener(new ActionListener() {
            			public void actionPerformed(ActionEvent evt) {
                			if (yesButton.isSelected()) {
    						yesButton.setSelected(false);
					}
					else {
						yesButton.setSelected(true);
					}				
                			YesAction();
            			}
        		});
			actionsMenu.add(sayYesMenuItem);

        		sayNoMenuItem = new JMenuItem("Say No");
			sayNoMenuItem.addActionListener(new ActionListener() {
            			public void actionPerformed(ActionEvent evt) {
                			if (noButton.isSelected()) {
    							noButton.setSelected(false);
						}
						else {
							noButton.setSelected(true);
						}
                			NoAction();
	            		}
        		});
			actionsMenu.add(sayNoMenuItem);
		}
		else if(myCategory==Constants.PRESENTER){
       			clearYesNoMenuItem = new JMenuItem("Clear Yes/No");
       			clearYesNoMenuItem.setEnabled(false);
			clearYesNoMenuItem.addActionListener(new ActionListener() {
            	public void actionPerformed(ActionEvent evt) {
                		ClearYesNoAction();
            	}
        		});
			actionsMenu.add(clearYesNoMenuItem);
			
		sessionInMenuItem = new JMenuItem("Begin Session");
		sessionInMenuItem.addActionListener(new ActionListener() {
            	public void actionPerformed(ActionEvent evt) {
                		if (sessionInButton.isSelected()) {
    					sessionInButton.setSelected(false);
				}
				else {
					sessionInButton.setSelected(true);
				}
                		SessionInAction();
            	}
        		});
			actionsMenu.add(sessionInMenuItem);

		giveMicToNextMenuItem = new JMenuItem("Give Min To Next");
		giveMicToNextMenuItem.setEnabled(false);
			giveMicToNextMenuItem.addActionListener(new ActionListener() {
            		public void actionPerformed(ActionEvent evt) {
                		GiveMicToNextAction();
            		}
        		});
			actionsMenu.add(giveMicToNextMenuItem);
		}

		//-------------------------
		stepOutMenuItem = new JMenuItem("Step In/Out");
		stepOutMenuItem.addActionListener(new ActionListener() {
            		public void actionPerformed(ActionEvent evt) {
                		if (stepInButton.isSelected()) {
    					stepInButton.setSelected(false);
				}
				else {
					stepInButton.setSelected(true);
				}
			
                		StepOutAction();
            		}
        	});
		actionsMenu.add(stepOutMenuItem);

		//----------------------------------------------
		logoutMenuItem = new JMenuItem("Log Out");
		logoutMenuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                	LogoutAction();
            }
        	});
		actionsMenu.add(logoutMenuItem);

		//---------
		menuBar.add(actionsMenu);

		//----------
        	helpMenu = new JMenu("Help");
        	aboutMenuItem = new JMenuItem("About");
        	aboutMenuItem.addActionListener(new ActionListener() {
         		public void actionPerformed(ActionEvent evt) {
              		AboutAction();
         		}

⌨️ 快捷键说明

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