📄 clientui.1
字号:
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 + -